本題要求求出單鏈錶值最大的結點並返回。要求實現兩個函式。
函式介面定義:
/* 建立單鏈表並返回單鏈表的頭指標 */
struct node*
buildlinkedlist
(int
* arr,
int n)
;/* 求單鏈錶值最大的結點,返回指向最大值結點的指標。
* 若單鏈表為空,則返回null。
*/struct node*
getmax
(struct node* head)
;
其中arr存放建立單鏈表所需的資料(均為正整數),n 的值不超過1000; head 為不帶附加頭結點的單鏈表的頭指標。
裁判測試程式樣例:
#include
#include
struct node
;/* 建立單鏈表並返回單鏈表的頭指標 */
struct node*
buildlinkedlist
(int
* arr,
int n)
;/* 求單鏈錶值最大的結點 */
struct node*
getmax
(struct node* head)
;int
main
(int argc,
char
const
*ar**)
struct node* head =
null
; head =
buildlinkedlist
(a, n)
;struct node* pmax =
getmax
(head);if
(pmax)
printf
("%d\n"
, pmax->data)
;else
printf
("-1\n");
free
(a);
return0;
}/* 請在這裡填寫答案 */
輸入樣例:
437
95
輸出樣例:
9
struct node*
buildlinkedlist
(int
* arr,
int n)
else
tail=s;
}return head;
}struct node*
getmax
(struct node* head)
else
}return s;
}
PTA 6 1 求單鏈表最大值
6 1 求單鏈表最大值 6分 本題要求實現乙個函式,返回帶頭結點的單鏈表中最大元素的位址。函式介面定義 linklist maxp linklist l l是帶頭結點的單鏈表的頭指標,函式maxp返回表中最大元素的位址。如果單鏈表為空,返回空指標。其中linklist結構定義如下 typedef s...
單鏈表操作 排序,拆分,刪除最大值
1.單鏈表拆分 題如下 對於乙個帶頭結點的單鏈表l 現將單鏈表拆分成兩個鍊錶 l1 l2 其中l1沿用原節點l,l2則新建節點。思路分析 對於所有a節點,依次指向下乙個a節點,對於b節點,則採用頭接法依次接入l2鍊錶。如下 include include struct sqlist sqlist l...
求單鏈表的最大值與原地逆轉
資料結構鍊錶一章已學習完畢,因此編了乙個程式用以實現鏈式表的構建,插入,查詢,求最大值,以及原地逆轉。除了求最大值與原地逆轉之外都是常規操作,不再贅述,著重分析最大值與逆轉的演算法。一 最大值的求解 通過max函式實現,定義結構體指標p指向l的首元節點,max初值為p data,通過if判斷是否有更...