(?)数据结构实验之链表七:单链表中重复元素的删除
来源:互联网 发布:软件招标网 编辑:程序博客网 时间:2024/05/01 03:34
数据结构实验之链表七:单链表中重复元素的删除
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。
Input
第一行输入元素个数 n (1 <= n <= 15);
第二行输入 n 个整数,保证在 int 范围内。
Output
第一行输出初始链表元素个数;
第二行输出按照逆位序所建立的初始链表;
第三行输出删除重复元素后的单链表元素个数;
第四行输出删除重复元素后的单链表。
Example Input
10
21 30 14 55 32 63 11 30 55 30
Example Output
10
30 55 30 11 63 32 55 14 30 21
7
30 55 11 63 32 14 21
#include <stdio.h>#include <malloc.h>#define LEN sizeof(struct node)typedef struct node{ int data; struct node* next;}node;node *creat(int n){ struct node* head,*p; int i; head=(struct node*)malloc(sizeof(LEN)); head->next=NULL; for(i=0;i<n;i++){//逆序建立链表 指针的下一个为头结点的下一个 头结点的下一个又为指针,这样做到了逆序的存储 p=(struct node*)malloc(sizeof(struct node)); scanf("%d",&p->data); p->next=head->next; head->next=p; } return head;};void convert(node *head,int n)//该死的来了,删除链表中重复的数据{ node *p,*q,*t; p = head->next;//首先 p,t指向的都是头结点的下一个结点 while(p){ t = p;//初始t与p同时为头结点的下一个结点,t用来临时存储“要删除结点的前一个结点” 首先要知道删除结点的前一个结点才能删除该结点 q = p->next;//q为p的下一个结点,这里我一直弄不清楚 为什么这句要放在循环里面(知道的朋友麻烦给我留言 while(q){ if(p->data==q->data){//q在链表中遍历一遍,看是否有和第一个结点相等的 n--; t->next = q->next;//当存在相等,t的下一个结点就直接为q的下一个结点,直接跳过q q = t->next;//同时,q也要往后移,及t的后继 } else{//否则,t,q往后走 t = t->next; q = q->next; } } p = p->next;//当内循环结束后(第一个结点p遍历第一个结点后的所有元素比较是否相等) 现在继续让p后移继续比较p之后的元素 } printf("%d\n",n);}void show(node *head){ node *p; p = head->next; printf("%d",p->data); p = p->next; while(p){ printf(" %d",p->data); p = p->next; } printf("\n");}int main(){ node *head; int n; scanf("%d",&n); head = creat(n); printf("%d\n",n); show(head); convert(head,n); show(head); return 0;}
这题做了好久,主要还是链表的删除不能理解透,到头来还是一直问别人
七改八改的终于完成了
0 0
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- SDUToj2122数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- 数据结构实验之链表七:单链表中重复元素的删除
- live555 - testOnDemandRTSPServer
- 设计模式之观察者设计模式
- mysqlAPI实例
- nginx配置
- 12 个好用且不花钱的网络监控工具
- (?)数据结构实验之链表七:单链表中重复元素的删除
- 17 - 03 - 28 图解HTTP(32)
- 哈夫曼树编码及其图形化的实现
- 谈谈我理解的测试的核心价值
- mininet安装
- 矩阵第三章总结笔记
- PageRank算法概述及Map-Reduce实现
- HD2084
- migrator