voidremoveDuplicate(node<"> voidremoveDuplicate(node<" />
删除重复元素代码(用结点)

删除重复元素代码(用结点)

ID:12017897

大小:27.00 KB

页数:4页

时间:2018-07-15

删除重复元素代码(用结点)_第1页
删除重复元素代码(用结点)_第2页
删除重复元素代码(用结点)_第3页
删除重复元素代码(用结点)_第4页
资源描述:

《删除重复元素代码(用结点)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、删除重复元素代码(用结点)——《数据结构》代码:#include#include"node.h"usingnamespacestd;templatevoidremoveDuplicate(node*front);templatevoidremoveDuplicate(node*front){Ttarget;node*curr,*p,*front1;curr=front;while(curr!=NULL){target=curr->nodeValue;front1=curr;front1=front1->

2、next;node*curr1=front1,*prev=NULL,*q;while(curr1!=NULL)//以第一个为target,删除重复元素{if(curr1->nodeValue==target){if(prev==NULL)//删除第一个元素{q=front1;front1=front1->next;curr1=front1;deleteq;curr->next=curr1;}else{prev->next=curr1->next;//删除元素q=curr1->next;deletecurr1;curr1=q;}}else{prev=curr1;curr1=cur

3、r1->next;}}curr=curr->next;//进行下一轮循环,target指向下一个}}intmain(){node*front=NULL,*p;inti,a[10]={0,0,8,2,0,3,0,2,2,2};for(i=0;i<10;i++)front=newnode(a[9-i],front);//创建链表removeDuplicate(front);//删除重复元素p=front;while(p!=NULL){cout<nodeValue<<"";p=p->next;}cout<<"";//输出链表return0;}结果:(原始数据

4、:0,0,8,2,0,3,0,2,2,2)结果分析:在老师课件上的模版进行修改,修改的地方为:(1)要实现重复删除的话,要将curr1指针指向下一个位置,继续循环下去;else{prev->next=curr1->next;//删除元素q=curr1->next;deletecurr1;curr1=q;}(2)如数据0,0,8{0(target),0(要删除的第一个元素),8}在删除第一个元素后,要将target的指针指向8的地址,否则target的指针会悬空if(prev==NULL){{q=front1;front1=front1->next;curr1=front1;delet

5、eq;curr->next=curr1;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。