1 /*一個集合用帶頭結點的單鏈表L表示,編寫算法刪除其值最大的結點。*/ 2 /* 3 算法思想:使用pre,p,premax,max四個指針,pre和p進行比較,premax和max進行最后的刪除操作 4 通過遍歷找到最大的值,后進行刪除 5 */ 6 void Delete_Max(LinkList& L) 7 { 8 LNode *pre = L, *p = L->next; 9 LNode *premax = pre, *max = p; 10 while (p) 11 { 12 if (max->data < p->data) 13 { 14 premax = pre; 15 max = p; 16 } 17 pre = p; 18 p = p->next; 19 } 20 cout << "刪除了最大的元素:" << max->data << endl; 21 premax->next = max->next; 22 delete(max); 23 }