博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构实验之链表七:单链表中重复元素的删除-sdut
阅读量:6208 次
发布时间:2019-06-21

本文共 1698 字,大约阅读时间需要 5 分钟。

数据结构实验之链表七:单链表中重复元素的删除

Time Limit: 1000MS Memory Limit: 65536KB
 

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 
#include
typedef struct mode_t{ int data; struct mode_t *next;} play;int main(){ play *head, *tail, *p, *q, *c; int n, i; scanf("%d",&n); head=(play *)malloc(sizeof(play)); tail=(play *)malloc(sizeof(play)); head->next=tail; tail->next=NULL; for(i=0; i
data); head->next=p; p->next=tail; tail=p; } printf("%d\n",n); tail=head->next; while(tail->next->next!=NULL) { printf("%d ", tail->data); tail=tail->next; } printf("%d\n", tail->data);//输出前两行计算结果 p=head->next; tail=head->next; while(tail->next!=NULL) { p=tail; q=p->next; while(q->next!=NULL) { if(q->data==tail->data) { c=q; q=q->next; p->next=p->next->next; n--; free(c); } else { p=p->next; q=q->next; } } tail=tail->next; } printf("%d\n",n); tail=head->next; while(tail->next->next!=NULL) { printf("%d ", tail->data); tail=tail->next; } printf("%d\n", tail->data); return 0;}

 

转载于:https://www.cnblogs.com/lxhax/p/6628981.html

你可能感兴趣的文章
使用while和FOR循环分布打印字符串S='asdfer' 中的每一个元素
查看>>
小a的排列
查看>>
2018年,牛客网小白月赛5
查看>>
【Linux】vi编辑器命令
查看>>
IT综合学习网站收集
查看>>
Linux系统文件类型 特殊文件 和 进程间通信机制
查看>>
Xtrabackup数据全备份与快速搭建从服务器
查看>>
标签td设置隐藏(hidden)
查看>>
ns,ui
查看>>
apache php mysql codeigniter smarty 记录方便查询
查看>>
UWP 杂记
查看>>
常用安全测试用例
查看>>
C语言中,指向函数的指针变量
查看>>
CLR中垃圾回收器模式
查看>>
AWS 技术峰会真的50%都是技术
查看>>
ssh环境搭建与管理(详解)
查看>>
创新创新再创新(2)
查看>>
PowerShell Studio 创建可视化工具- 扫描软件1.0
查看>>
Powershell学习笔记——函数和函数库
查看>>
ISCSI共享存储配置跟parted命令简述
查看>>