- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 3
单链表中重复元素的删除(8817)
一、题目
1、问题描述
按照数据输入的顺序建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最初输入的一个)。
2、输入
第一行输入元素个数n;第二行输入n个整数;处理到文件结束。
3、输出
第1行输出删除重复元素后的单链表元素个数;第2行输出删除重复元素后的单链表;
4、输入例
10
21 30 14 55 32 63 11 30 55 30
5、输出例
7
21 30 14 55 32 63 11
二、算法指导
1、数据结构
根据题目要求,数据要存储于单链表,首先要确定建立的单链表的结点类型,结点类型可为:
typedef struct node
{
int data;
node *next;
}*linklist;
这里的linklist为指针类型,其变量为指向node的结点。
2、算法思路
(1) 设计初始化单链表的函数int initlist_l(linklist l);以建立带头结点的空单链表。
int initlist_l(linklist l)
{
// 构造一个带头结点的空单链表l,l是引用参数,是变参,其值其他函数要用。
}
(2) 设计建立有n个结点的单链表函数void createlist_l(linklist l,int n)。可用后插法建立单链表。这里的l开始时已指向单链表的头结点,l的值已不会变,所以只要值参就可以。n为要建立的非降序排列单链表的结点个数,由主函数传入。
void createlist_l(linklist l,int n)
{
for(n次重复做)
{
输入数据d;
产生新结点p,并把d 赋值给p;
把新结点p链接到链表l的尾部;
}
}
(3) 输出单链表。
void print(linklist l)
{
// 按输出格式要求输出单链表l中结点的值
}
(4) 设计单链表中重复元素的删除的函数void dele(linklist la,int n),la为单链表,n为la中的结点个数,删除重复结点后,n的值要减小,其值要函数外面要用,所以用引用参数。其算法思想是从la的第一个结点开始的各结点,依次与其后面的各个结点比较,若其值相等,则将其后面的结点删除。要注意到删除结点时,不要断链,既要删除结点,也要抓住被删除结点的后面的结点,以便继续处理。
void dele(linklist la,int n)
{
p指向la表的第一个结点;// 从la的第一个结点开始的各结点
while(p不空) // 扫描la表中的各结点
{
p2指向p的下一个结点; // 准备扫描p的后续结点
p1取p的值; // p1跟在p2的后面,准备链接被删结点的后一结点;
while(p2不空) // 扫描p的各后续结点
{
if(p所指结点的值等于p2所指结点的值) // 找到重复结点
{
p2所指结点的后一结点链接在p1结点后面;// 绕过重复结点
p2指向其下一结点; // 为继续扫描准备
删除重复结点(原p2所指结点);
链表的结点数减一;
}
else
{
p2指向其下一个结点; // 准备扫描下一个结点
p1跟在p2的后面;
}
}
p指向其下一个结点; // 准备检查下一个结点是否有重复结点
}
}
3、主函数
main()
{
调用initlist_l(),初始化单链表la;
调用createlist_l(),建立有n个结点的单链表la;
调用dele(),删除la 中的重复结点;
输出删除la中结点后的结点个数;
调用print(),输出删除重复结点后的单链表la;
}
您可能关注的文档
最近下载
- 中国特色社会主义为什么“好”图文党课.pptx VIP
- 材料研究与测试方法试卷.doc VIP
- CAAC执照理论考试.pptx
- 教科版二年级上第一单元《我们的地球家园》大单元整体教学设计.pdf VIP
- 81、4-6岁 《小雏菊》少儿美术课件.pptx
- 弘扬教育家精神以教育家精神引领教师队伍高质量发展课件PPT.pptx VIP
- canopen一致性测试广州虹科电子科技.pdf
- 部级基础教育精品课PPT模板.pptx VIP
- 1《中国人民站起来了》课件(29张PPT) 高中语文统编版选择性必修上册第一单元 .pptx
- 高中-历史-部编版(2019)-第20课 北洋军阀统治时期的政治、经济与文化.ppt
文档评论(0)