第三週專案2 建立「順序表」演算法庫

2021-07-22 19:20:51 字數 3988 閱讀 8782

問題及**:

01./*   

04.*檔名稱:a.cpp

06.*完成日期:2016.9.17

08. 標頭檔案:list.h,包含定義順序表資料結構的**、巨集定義、要實現演算法的函式的宣告;

09. 原始檔:list.cpp,包含實現各種演算法的函式的定義

10.*/

1.list.h的**

#include02.#include03.#define maxsize 50    

04.typedef int elemtype;

05.typedef struct

06. sqlist;

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

11.void initlist(sqlist *&l);//初始化線性表initlist(l)

12.void destroylist(sqlist *&l);//銷毀線性表destroylist(l)

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

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

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

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

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

18.bool listinsert(sqlist *&l,int i,elemtype e);//插入資料元素listinsert(l,i,e)

19.bool listdelete(sqlist *&l,int i,elemtype &e);//刪除資料元素listdelete(l,i,e)

2.list.cpp的**

#include "list.h"    

02.

03.//用陣列建立線性表

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

05.

12.

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

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

15.

20.

21.//銷毀線性表destroylist(l)

22.void destroylist(sqlist *&l)

23.

26.

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

28.bool listempty(sqlist *l)

29.

32.

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

34.int listlength(sqlist *l)

35.

38.

39.//輸出線性表displist(l)

40.void displist(sqlist *l)

41.

48.

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

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

51.

56.

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

58.int locateelem(sqlist *l, elemtype e)

59.

65.

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

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

68.

79.

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

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

82.

3.各種main的測試函式的**

(1)測試「建立線性表」的演算法createlist,為檢視建表的結果,需要實現「輸出線性表」的演算法displist。

int main()    

02.;

05. createlist(sq,x,6);

06. dislist (sq);

07. return 0;

08.}

(2)在已經建立線性表的基礎上,求線性表的長度listlength、求線性表l中指定位置的某個資料元素getelem、查詢元素locateelem的演算法都可以實現了。

int main()    

02.;

05. elemtype a;

06. int loc;

07. createlist(sq, x, 6);

08. dislist(sq);

09.

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

11.

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

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

14. else

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

16.

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

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

19. else

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

21.

22. if((loc=locateelem(sq, 8))>0) //測試能找到的情形

23. printf("找到了,值為8的元素是第 %d 個\n", loc);

24. else

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

26.

27. if((loc=locateelem(sq, 17))>0) //測試不能找到的情形

28. printf("找到了,值為17的元素是第 %d 個\n", loc);

29. else

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

31.

32. return 0;

33.}

(3)插入資料元素listinsert、刪除資料元素listdelete、初始化線性表initlist、銷毀線性表destroylis

int main()    

02.

知識點總結:

強化順序運算的知識點,整合。

心得體會:

整合後方便運算,也強化了對運算的認識。

第三週專案2 建立「順序表」演算法庫

1 標頭檔案 list.h cpp view plaincopyprint?01.include 02.include 03.04.define maxsize 50 maxsize將用於後面定義儲存空間的大小 05.typedef int elemtype elemtype在不同場合可以根據問題的...

第三週專案2 建立順序表的演算法庫

檔名稱 專案2 建設 順序表 演算法庫.cpp 作 者 孫欽達 完成日期 2015年10月5日 版 本 號 v1.0 問題描述 領會 0207將演算法變程式 部分建議的方法,建設自己的專業基礎設施演算法庫。這一周,建的是順序表的演算法庫。演算法庫包括兩個檔案 1.標頭檔案 list.h,包含定義順序...

第三週專案2 建立順序表的演算法庫

檔名稱 w.cpp 作 者 武昊 完成日期 2016年9月18日 版 本 號 v1.0 問題描述 請採用程式的多檔案組織形式,在專案1的基礎上,建立 如上的兩個檔案,另外再建立乙個原始檔,編制main函 數,完成相關的測試工作。輸入描述 無 程式輸出 資料 list.h define maxsize...