数据结构作业-3

本文介绍了一种针对非递减有序单链表的去重算法实现,包括直接插入排序和去重处理过程。适用于int型和char型数据,通过示例展示了其应用效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:编写算法程序将非递减有序的单链表中值相同的多余结点删除。设线性表为顺序存储结构。

1.需求分析

将非递减有序的单链表中值相同的多余结点删除,设线性表为顺序存储结构。

当用户输入的数组的关键码为非递减有序时,删除重复节点;当用户输入的数组的关键码并不是有序时,进行排序,然后删除重复的节点。

本程序处理int型和char型的数组。

 

2.概要设计

 

    总体流程如下如:

 

 

ADT定义:

struct _Node{

    struct _Node * next;

    DataType data;

};

    主要的函数:

int append(DataType _data);//追加到最后

int delete_current(Node * nd);//删除当前节点

int delete_next(Node * nd);//删除下一个节点

Node * get_next(Node * nd);//返回下一个节点

Node * get_list();//生成list

 

3.详细设计

流程图为:

 

其中直接插入排序算法的流程图如下:

 

4.调试分析

当用户输入的数组的长度超过最大值N时,程序发生错误。

DataTypechar型时,不能处理多于一位数的整数,如下:

 

数组长度:9

数组元素:1 9 89 3 2 67 7890 90

处理结果:

1  2  3  6  7  8  9

 

5.使用说明

    运行程序,输入int型或char型数组,回车即出现结果。

 

6.测试结果

测试组一int

数组长度:5

数组元素:12 0 989 34 0

处理结果:

0  12  34  98

测试组二char

数组长度:7

数组元素: 9 4 3 2 0 8 3

处理结果:

0  2  3  4  8  9

测试组三char

数组长度:6

数组元素:1 q 3 e 3 w

处理结果:

1  3  e  q  w

 

7.附录

源程序文件清单。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值