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 }