2122数据结构实验之链表七:单链表中重复元素的删除
来源:互联网 发布:mac第三方应用商店 编辑:程序博客网 时间:2024/06/06 04:44
数据结构实验之链表七:单链表中重复元素的删除
Problem Description
按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。
Input
第一行输入元素个数 n (1 <= n <= 15);
第二行输入 n 个整数,保证在 int 范围内。
Output
第一行输出初始链表元素个数;第二行输出按照逆位序所建立的初始链表;第三行输出删除重复元素后的单链表元素个数;第四行输出删除重复元素后的单链表。
Example Input
1021 30 14 55 32 63 11 30 55 30
Example Output
1030 55 30 11 63 32 55 14 30 21730 55 11 63 32 14 21
代码:
#include <stdio.h>#include <stdlib.h>typedef struct list{ int data; struct list* next;}LIST;int main(){ LIST *L=(LIST *)malloc(sizeof(LIST)); LIST *p,*q,*pre,*s; L->next=NULL; int n,t; scanf("%d",&n); t=n; while(n--)//逆位序建立初始链表,即将s插在头指针后面 { s=(LIST *)malloc(sizeof(LIST)); scanf("%d",&s->data); s->next=L->next; L->next=s; } printf("%d\n",t); p=L->next; while(p) { if(p->next==NULL) printf("%d",p->data); else printf("%d ",p->data); p=p->next; } printf("\n"); p=L->next; while(p) { pre=p;//pre代表q的前驱节点,因为涉及到删除操作,所以必须重新设定前驱结点的指针域 q=p->next; while(q) { if(p->data==q->data)//删除q的指向 { pre->next=q->next; free(q);//释放掉此时q所指向的内存 q=pre->next; t--; }else{ pre=q;//下移 q=q->next; } } p=p->next; } printf("%d\n",t); p=L->next; while(p) { if(p->next==NULL) printf("%d",p->data); else printf("%d ",p->data); p=p->next; } return 0;}/***************************************************Result: AcceptedTake time: 0msTake Memory: 192KBSubmit time: 2017-07-23 12:39:52****************************************************/
阅读全文
0 0
- 2122数据结构实验之链表七:单链表中重复元素的删除
- 2122数据结构实验之链表七:单链表中重复元素的删除
- 2122数据结构实验之链表七:单链表中重复元素的删除
- 2122 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- SDUToj2122数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- numpy函数(1)——linspace创建等差数列
- 《数据结构学习与实验指导》5-5:QQ账号的申请与登录
- 动态库与静态库
- 【Leetcode】【python】Construct Binary Tree from Preorder and Inorder Traversal (Inorder and Postorder)
- QQ怎么找回/恢复被删掉的好友
- 2122数据结构实验之链表七:单链表中重复元素的删除
- 二叉树的基本操作
- 35.查找插入位置
- 第二次作业
- JavaScript函数式编程(二)
- leetcode 241. Different Ways to Add Parentheses
- tensorflow安装卸载
- 【OpenStack源码分析之九】看 nova-scheduler 如何选择计算节点
- Python自学之路第一步——缩进问题