問題描述及**:
[cpp] view plain copy
1. /*
2. *煙台大學計控學院
3. *作 者:朱建豪
4. *完成日期:2023年9月23日
5. *問題描述:設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。
6. */
演算法庫的**:
[cpp] view plain copy
1. #include2. #include3. typedef int elemtype;
4. typedef struct lnode //定義單鏈表結點型別
5. linklist;
9. void createlistf(linklist *&l,elemtype a,int n);//頭插法建立單鏈表
10. void createlistr(linklist *&l,elemtype a,int n);//尾插法建立單鏈表
11. void initlist(linklist *&l); //初始化線性表
12. void destroylist(linklist *&l); //銷毀線性表
13. bool listempty(linklist *l); //判斷線性表是否為空
14. int listlength(linklist *l); //求線性表長度
15. void displist(linklist *l); //輸出線性表
16. bool getelem(linklist *l,int i,elemtype &e); //求線性表某個資料元素值
17. int locateelem(linklist *l,elemtype e); //按元素值查詢
18. bool listinsert(linklist *&l,int i,elemtype e); //插入資料元素
19. bool listdelete(linklist *&l,int i,elemtype &e); //刪除資料元素
20. bool increase(linklist *l);
[cpp] view plain copy
1. #include"list.h"
2. void createlistf(linklist *&l,elemtype a,int n)//頭插法建立單鏈表
3.
15. }
16. void createlistr(linklist *&l,elemtype a,int n)//尾插法建立單鏈表
17.
29. r->next=null;
30. }
31.
32.
33.
34.
35. void initlist(linklist *&l) //初始化線性表
36.
40. void destroylist(linklist *&l)//銷毀線性表
41.
49. free(p); //此時q為null,p指向尾結點,釋放它
50. }
51. bool listempty(linklist *l) //判斷線性表是否為空
52.
55. int listlength(linklist *l) //求線性表長度
56.
64. return (n);
65. }
66.
67. bool getelem(linklist *l,int i,elemtype &e) //求線性表某個資料元素值
68.
76. if(p==null)
77. return false;
78. else
79.
83. }
84.
85. int locateelem(linklist *l,elemtype e) //按元素值查詢
86.
94. if(p==null)
95. return (0);
96. else
97. return(i);
98. }
99.
100. bool listinsert(linklist *&l,int i,elemtype e) //插入資料元素
101.
109. if(p==null)
110. return false;
111. else
112.
119. }
120.
121. bool listdelete(linklist *&l,int i,elemtype &e) //刪除資料元素
122.
130. if(p==null)
131. return false;
132. else
133.
142. }
143. void displist(linklist *l) //輸出單鏈表
144.
151. printf("\n");
152. }
153. bool increase(linklist *l)
154.
168. }
169. return true;
170. }
判斷遞增的函式**:
[cpp] view plain copy
1. bool increase(linklist *l)
2.
16. }
17. return true;
18. }
主函式**:
[cpp] view plain copy
1. #include"list.h"
2. int main()
3. ;
7. elemtype b= ;
8. initlist(a);
9. for(i=3; i>=0; i--)
10. listinsert(a, 1, a[i]);
11. initlist(b);
12. for(i=5; i>=0; i--)
13. listinsert(b, 1, b[i]);
14. printf("a: %c\n", increase(a)?'y':'n');
15. printf("b: %c\n", increase(b)?'y':'n');
16. destroylist(a);
17. destroylist(b);
18. return 0;
19. }
執行結果:
單鏈表的基本運算
學習心得:
慢慢來,慢慢體會演算法,相信有一天我也會自己編出演算法
第四周 3 3專案 單鏈表演算法
檔名稱 第四周 3.3專案 單鏈表演算法 完成日期 2014.09.25 版號 v1.0 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試 輸入描述 無 輸出描述 a n b y include include include linklist.h ifndef lin...
第四周 專案3 3
問題描述及 煙台大學計控學院 作 者 王力源 完成日期 2016年9月22日 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。演算法庫的 include includetypedef int elemtype typedef struct lnode 定義單鏈表結點型...
第四周專案3 單鏈表的應用 單鏈表遞增
問題及 煙台大學計算機控制與工程學院 作 者 劉倩 完成日期 2016年9月18日 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。1 list.h include includetypedef int elemtype typedef struct lnode 定義...