链表习题(2)-一个集合用带头结点的单链表L表示,编写算法删除其值最大的结点。


 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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM