链表D 单链表中重复元素的删除
来源:互联网 发布:java获取文件共享路径 编辑:程序博客网 时间:2024/06/05 12:38
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 <stdlib.h>struct node{ int data; struct node *next;};struct node *creat(int n) //逆序建链表{ int i; struct node *head, *p; head = (struct node *)malloc(sizeof(struct node )); 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;};Int del(struct node *head, int n) { struct node *p, *q, *t; //添加一个t指针是为了移动,p先不动,用后面挨个和p比较 p = head->next; while(p!=NULL) { t = p; q = t->next; while(q!=NULL) { if(q->data == p->data) { t->next = q->next; free(q); q = t->next; n--; } else { t = q; //t作为q结点的前驱结点,而p结点先不动! q = q->next; } } p = p->next; } return n;}void show(struct node *head, int n){ struct node *p; int i; p = head->next; printf("%d", p->data); p = p->next; for(i = 1; i < n; i++) { printf(" %d", p->data); p = p->next; } printf("\n");}int main(){ struct node *head; int n; scanf("%d", &n); head = creat(n); //head和printf的位置不能交换! printf("%d\n", n); show(head, n); n = del(head, n); printf("%d\n", n); show(head, n); return 0;}
阅读全文
0 0
- 链表D 单链表中重复元素的删除
- [链表]单链表中重复元素的删除
- 删除单链表中重复的元素
- 删除单链表中重复的元素
- 删除单链表中重复的元素
- 删除单链表中重复的元素
- 单链表中重复元素的删除
- 单链表中重复元素的删除
- 单链表中重复元素的删除
- 单链表中重复元素的删除
- 单链表中重复元素的删除
- 单链表中重复元素的删除
- 单链表中重复元素的删除
- 重复元素的删除
- 重复元素的删除
- 13.删除单链表中重复的元素
- 单链表中删除重复元素的结点
- 删除已排序单链表中重复的元素
- 大数取模
- npm install loadAllDepsIntoIdealTree CPU 占用过高
- 链表C 链表的结点插入
- Unity3D笔记之---简单的注册与登陆
- 最新版本sublime text3注册码
- 链表D 单链表中重复元素的删除
- 网页制作之jsp与servlet中的中文乱码解决方案
- Java 学习笔记 04 String 、StringBuilder 和 StringBuffer区别和联系
- GitHub使用-第一天
- 链表E 有序链表的归并
- Android实现数据持久化的三种方法
- Python实现二分查找
- 单例设计模式
- 【广告算法工程师入门 15】机制设计-基础知识