第3周專案1 順序表的基本運算

2021-09-30 12:43:46 字數 4342 閱讀 6129

問題:

/* 

*檔名稱:順序表的基本運算.cpp

*作 者:張芸嘉

*完成日期:2023年9月21日

*版 本 號:v1.0

* *問題描述:實現順序表基本運算有演算法,依據「最小化」的原則進行測試。所謂最小化

原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計main函式

完成測試。

*輸入描述:無

*程式輸出:依據各個函式而定

*/

**:(1)

#ifndef list_h_included

#define list_h_included

#include #include #define maxsize 50

typedef int elemtype;

typedef struct

sqlist;

void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表

bool listempty(sqlist *l);//判定是否為空表listempty(l)

void displist(sqlist *l);//輸出線性表displist(l)

#endif

//測試函式

int main()

; createlist(sq, x, 8);//最後為0則是空表

if((listempty(sq))>0) //測試不能找到的情形

printf("是空表\n");

else

printf("不是空表\n");

displist(sq);

return 0;

}//定義各個自定義函式

//用陣列建立線性表

void createlist(sqlist *&l, elemtype a, int n)

//判定是否為空表listempty(l)

bool listempty(sqlist *l)

//輸出線性表displist(l)

void displist(sqlist *l)

執行結果:

(2)

#ifndef list_h_included

#define list_h_included

#include #include #define maxsize 50

typedef int elemtype;

typedef struct

sqlist;

void createlist(sqlist *&l, elemtype a, int n);//用陣列建立線性表

bool listempty(sqlist *l);//判定是否為空表listempty(l)

void displist(sqlist *l);//輸出線性表displist(l)

int listlength(sqlist *l);//求線性表的長度listlength(l)

bool getelem(sqlist *l,int i,elemtype &e);//求某個資料元素值getelem(l,i,e)

int locateelem(sqlist *l, elemtype e);//按元素值查詢locateelem(l,e)

#endif

//測試函式

int main()

;    createlist(sq, x, 8);//最後為0則是空表

printf("表長度:%d\n", listlength(sq));  //測試求長度

if(getelem(sq, 3, e))  //測試在範圍內的情形

printf("找到了第3個元素值為:%d\n", e);

else

printf("第3個元素超出範圍!\n");

if(getelem(sq, 15, e))  //測試不在範圍內的情形

printf("找到了第15個元素值為:%d\n", e);

else

printf("第15個元素超出範圍!\n");

if((k=locateelem(sq, 1))>0)  //測試能找到的情形

printf("找到了,值為1的元素是第 %d 個\n", k);

else

printf("值為1的元素木有找到!\n");

if((k=locateelem(sq, 16))>0)  //測試不能找到的情形

printf("找到了,值為16的元素是第 %d 個\n", k);

else

printf("值為16的元素木有找到!\n");

return 0;

}//定義各個自定義函式

//用陣列建立線性表

void createlist(sqlist *&l, elemtype a, int n)

//判定是否為空表listempty(l)

bool listempty(sqlist *l)

//求線性表的長度listlength(l)

int listlength(sqlist *l)

//輸出線性表displist(l)

void displist(sqlist *l)

//求某個資料元素值getelem(l,i,e)

bool getelem(sqlist *l,int i,elemtype &e)

//按元素值查詢locateelem(l,e)

int locateelem(sqlist *l, elemtype e)

執行結果:

(3)

#ifndef list_h_included

#define list_h_included

#include #include #define maxsize 50

typedef int elemtype;

typedef struct

sqlist;

void displist(sqlist *l);

bool listempty(sqlist *l);

void initlist(sqlist *&l); //引用型指標

void destroylist(sqlist *&l);

bool listinsert(sqlist *&l,int i,elemtype e);

bool listdelete(sqlist *&l,int i,elemtype &e);

#endif

//測試函式

int main()

//定義各個自定義函式

//輸出線性表displist(l)

void displist(sqlist *l)

//判定是否為空表listempty(l)

bool listempty(sqlist *l)

//初始化線性表initlist(l)

void initlist(sqlist *&l) //引用型指標

//銷毀線性表destroylist(l)

void destroylist(sqlist *&l)

//插入資料元素listinsert(l,i,e)

bool listinsert(sqlist *&l,int i,elemtype e)

//刪除資料元素listdelete(l,i,e)

bool listdelete(sqlist *&l,int i,elemtype &e)

執行結果:

知識點總結:

此程式讓我們對線性表演算法庫有了乙個從簡到繁的認識,演算法庫對於我們認識學習演算法有非常大的幫助。

學習心得:

這個程式對我來說是有些困難的,可能也與之前基礎打的不好有關,但我相信只要堅持就會成功!

第3周 專案1 順序表的基本運算

all right reserved.檔名稱 20170920.cpp 完成日期 2017年9月20日 版本號 v1.1 問題描述 實現順序表基本運算有演算法,依據 最小化 的原則進行測試 輸入描述 建立線性表 程式輸出 輸出線性表 1 測試 建立線性表 的演算法createlist,為檢視建表的結...

第3周專案1 順序表的基本運算(3)

檔名稱 第3周專案1 順序表的基本運算 3 cpp 作 者 陳勝男 完成日期 2015年10月9日 版 本 號 v1.0 問題描述 3 其餘的4個基本運算 插入資料元素listinsert 刪除資料元素listdelete 初始化線性表initlist 銷毀線性表destroylist都可以同法完成...

第3周專案1 順序表的基本運算(1)

檔名稱 第3周實踐專案 順序表的基本運算.cpp 作 者 滕健 完成日期 2016年9月13日 版 本 號 v1.0 問題描述 領會 0207將演算法變程式 部分建議的方法,將順序表部分的演算法變成程式。實現順序表基本運 則進行測試。所謂最小化原則,指的是利用盡可能少的基本運算,組成乙個程式,並設計...