欢迎来到天天文库
浏览记录
ID:11730058
大小:25.50 KB
页数:3页
时间:2018-07-13
《在非递减有序单链表中删除多余结点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、问题:在非递减有序的单链表中删除值相同的多余结点,同时释放被删除结点的空间。问题分析:由于是非递减有序排列所以相同结点必是相邻的,比较相邻两结点的元素,若相同则删除后一个结点,在连接被删结点的前驱和后继结点继续比较;若不同则后移一结点,再比较即可。源程序:#include//cout,cin#include"process.h"//exit()#include"LinkList.h"typedefintT;voidmain(){Te;LinkListLa;intla_len;cout<<
2、"请输入要创建链表中数据元素个数:";cin>>la_len;//将创建的链表中数据元素的个数La.CreateList(la_len);cout<*p,*q;p=La.Head->next;q=p->next;while(q!=NULL){if(p->data==q->data){//如果前后两个节点数据相同,则将后面的节点删除//p所指的位置不变,q则向后移一节点p->next=q->next;deleteq;q=p->next;}else{//如果前后两个数据不相等,则两个指针都向后移一个
3、节点p=q->next;q=p->next;}}La.ListDisplay();cout<
此文档下载收益归作者所有