利用单链表删除重复元素
来源:互联网 发布:网络营销策划的目的 编辑:程序博客网 时间:2024/04/29 16:43
****前面一篇介绍了用顺序表删除重复元素,那用单链表是不是也能奏效呢?下面用单链表删除重复元素。****
#include <iostream>using namespace std;typedef int ElemType;struct Node{ ElemType data; struct Node *next;};Node* Create(){ Node *head,*p,*q; head=new Node; head->next=NULL; q=head; int n,i; double k; cout<<"请输入您要创建的链表长度:"; cin>>n; cout<<endl; cout<<"请输入链表中每个结点保存的数据:"; for(i=0;i<n;i++) { cin>>k; p=new Node; p->data=k; q->next=p; q=p; } p->next=NULL; cout<<endl<<"链表创建成功"<<endl; return head;}Node* DeleteSame(Node *L){ cout<<"现在进行删除链表中的重复元素..."<<endl; Node *p,*q,*r; p=L->next; while(p) //p用于遍历链表 { q=p; while(q->next) //q遍历p后面的结点,并与p数值比较 { if(q->next->data==p->data) //当q的后一结点与p相等时 { r=q->next; //r保存需要删掉的结点 q->next=r->next; //需要删除的结点前后结点相连接 delete r; //删除保存的结点 } else q=q->next; } p=p->next; //q再往后遍历,观察是否还有重复元素 } return L;}void ShowLink(Node *L){ cout<<"显示链表中所有结点的数据:"; Node *p; p=L->next; while(p) { cout<<p->data<<" "; p=p->next; } cout<<endl;}int main(){ Node *L; L=Create(); ShowLink(L); DeleteSame(L); cout<<"删除成功。"<<endl; ShowLink(L); return 0;}
0 0
- 利用单链表删除重复元素
- 利用顺序表删除重复元素
- 利用grep()方法删除数组重复元素
- 删除单链表中的重复元素
- 单链表删除有序重复元素
- php利用正则表达式删除字符串里的重复元素
- 非递减单链表删除重复元素
- 17 - 01 - 01 单链表-删除重复元素
- 删除重复元素
- List删除重复元素
- 删除链表中重复元素
- arrayList重复元素删除
- 删除链表中重复元素
- 重复元素的删除
- 删除链表中重复元素
- 删除链表中重复元素
- 重复删除多余元素
- HashSet删除重复元素
- Hello World
- Linux Is Not Matrix——扩容的时间2
- 搜索历史 AutoCompleteTextView自定义匹配关键字匹配
- Android ListView分页显示
- 第38讲项目2——打豆豆
- 利用单链表删除重复元素
- Xutil
- Java虚拟机总结
- 1003-第39级台阶
- 20160319tomcat自定义web应用主页以及Context部分属性意义以及什么是servlet
- poj2438(哈密顿图)
- phonegap cordova 打包命令备忘
- IOS学习之UIWebView(3)
- Java中用中文命名