链表去重操作-两种方法的实现
来源:互联网 发布:新加坡航空 知乎 编辑:程序博客网 时间:2024/05/29 12:24
#include<stdio.h>#include<stdlib.h>typedef struct list{ int data; list *next;}List;void create_list(list *&head,int len){ list *p=head; for(int i=0;i<len;i++) { list *pnew=(list*)malloc(sizeof(list)); scanf("%d",&pnew->data); p->next=pnew; p=p->next; } p->next=NULL;}void print_list(list *head){ while(head->next!=NULL) { head=head->next; printf("%d ",head->data); }}void delete_list(list *head,list *tail,list *newList){ list *o,*p,*q,*r=head,*t=newList; int l=0; for(p=head->next;p!=NULL;) { l=0; for(q=p->next;q!=NULL;q=q->next) { if(p->data==q->data) { l=1; o=p; r->next=p->next; p=p->next; free(o); break; } } if(!l) { r=p; p=p->next; } /*if(!l) { t->next=p; t=t->next; }*/ } t->next=NULL;}int main(){ list l; int len; scanf("%d",&len); list *newList=(list *)malloc(sizeof(list)),*tail=(list *)malloc(sizeof(list)),*head=(list *)malloc(sizeof(list)); create_list(head,len); tail=head; delete_list(head,tail,newList); //print_list(newList); print_list(head); return 0;}一种是新建链表,另一种直接在原来链表进行删除
0 0
- 链表去重操作-两种方法的实现
- 两种方法实现链表的节点操作排序
- [Java]Java实现线程操作的两种方法
- 取反操作的两种方法
- 两种操作botton的方法
- 操作GPIO其中的两种方法
- 图像掩码操作的两种实现
- aspectj实现aop的两种操作
- spring两种方法实现操作对象化
- 实现一个线程的两种方法
- 实现树状结构的两种方法
- 实现树状结构的两种方法
- Singleton的两种不同实现方法.
- VC++ CRC16的两种实现方法
- 实现 iSCSI Initiator 的两种方法
- javascript实现继承的两种方法
- Dorado分页的两种实现方法
- 实现 iSCSI Initiator 的两种方法
- Django信号
- 回顾2016年初时候的愿景
- 如何在文章页以外调用wordpress文章的第一条,最好是系统函数 而不是数据库调用
- JDR与JRE的区别
- 使用Volley加载图片
- 链表去重操作-两种方法的实现
- C#数据库编程---事务回滚
- 抽象类和接口的区别
- DSSS和FHSS
- ubuntu的init.d管理service
- 欢迎使用CSDN-markdown编辑器
- html中js获取非行间样式
- 大数运算
- 形参和实参