c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...
//在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如:(7,10,10,21,30,42,42,51,70)将变为(7,10,21,30,42,51,70)
include
include
typedef struct LNode
{
int data;
struct LNode *next;
} LNode, *LinkList;
LinkList List_TailInsert(LinkList L)
{
int x; //设元素类型为整型
L = (LinkList)malloc(sizeof(LNode));
LNode *s, *r = L; //r为表尾指针
printf("请输入表元素(以999结尾):");
scanf("%d", &x); //输入结点的值
while (x != 999) //输入999表示结束
{
s = (LNode *)malloc(sizeof(LNode));
s->data = x;
r->next = s;
r = s; //r指向新的表尾结点
scanf("%d", &x);
}
r->next = NULL; //尾结点指针置空
return L;
}
void print(LinkList L)
{
while (L->next != NULL)
{
L = L->next;
printf("%d ", L->data);
}
}
void Del_Same(LinkList L) //L是递增有序的单链表,本算法删除表中数值相同的元素
{
LNode p = L->next, q; //p为扫描工作指针
if (p == NULL)
{
return;
}
while (p->next != NULL)
{
q = p->next; //q指向pr的后继结点
if (p->data == q->data) //找到重复值的结点
{
p->next = q->next; //释放q结点
free(q); //释放相同元素值的结点
}
else
{
p = p->next;
}
}
}
int main()
{
LinkList L, A, B;
LNode *p;
int e, i;
A = (LinkList)malloc(sizeof(LNode));
A = List_TailInsert(L);
printf("尾插法建立的单链表:");
print(A);
printf("\n");
Del_Same(A);
printf("删除相同元素后:");
print(A);
printf("\n");
return 0;
}
//运行结果:
WX20200720-132910.png
c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...相关推荐
- 在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法,去掉数值相同的元素,使得表中不再有重复的元素。
在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法,去掉数值相同的元素,使得表中不再有重复的元素.例如(7,10,10,21,30,42,42,42,51,70)将变为(7, ...
- 线性表之链式存储结构_单链表相关算法
在存储结构上,不需要连续的存储空间,需要上一个结点的指针域 指向下一个结点即可,找到一个结点就可以找到下一个结点. 学习教材是大话数据结构,加上自己的一些个人理解.这个算法 有点绕,需要对指针 相关内 ...
- 有序表A和B,其元素均按照从小到大升序排列,编写一个算法将它们合并成一个顺序表C,要求C的元素也是从小到大的升序排列。
题目要求:有序表A和B,其元素均按照从小到大升序排列,编写一个算法将它们合并成一个顺序表C,要求C的元素也是从小到大的升序排列. 代码实现: void merge(SqList A,SqList B, ...
- 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母
假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...
- c语言单链表设计报告,单链表实验报告
<数据结构>实验报告二 分校: 学号: 日期: 班级: 姓名: 程序名: L2311.CPP 一.上机实验的问题和要求: 单链表的查找.插入与删除.设计算法,实现线性结构上的单链表的产生以 ...
- 2.3线性表的链式存储和运算—单链表应用举例
例2.5 已知单链表H,写一算法将其倒置.即实现如图2.22的操作.(a)为倒置前,(b)为倒置后. 算法思路:依次取原链表中的每个结点,将其作为第一个结点插入到新链表中去,指针p用来指向当前结点,p ...
- 线性表的链式存储结构以及单链表的插入和删除原理实现
线性表的链式存储结构 线性表中的每个元素最多只有一个前驱元素和一个后继元素(其逻辑结构),因此可以采用链式存储结构存储. 链表 线性表的链式存储结构称为链表.在链表中每个结点不仅包含有元素本身的信息( ...
- php链表删除元素,PHP之从反向删除单链表元素的问题谈起
在完成一个单链表的删除指定元素的题目中,我发现了一件神奇的事情,php对象赋值给另外一个变量后,可以如同引用传值一般继续利用新的变量来实现链表的链接. 后面经过查证后发现: PHP7.0版本除了对象, ...
- 链表的特点,单链表的定义、存储结构,单链表的基本操作(判断链表是否为空、销毁链表、清空链表、求链表表长、查找、插入、删除,建立单链表)
目录 一.链表(链式存储结构)的特点 二.单链表的定义和表示 1.带头结点的单链表 2.单链表的存储结构 三.单链表基本操作的实现 1.单链表的初始化(带头结点的单链表) 2.补充单链表的几个常用简单 ...
最新文章
- html标签anchor,浏览器端-W3School-HTML:HTML DOM Anchor 对象
- C/C++代码的混合使用
- webview加载php文件,HYWebview下载自定义文件教程
- 30分钟学会使用grunt打包前端代码
- 2020 年,你还在使用 Java 中的 SimpleDateFormat 吗?
- 如何保存ISE综合后的RTL schematic为pdf
- 小甲鱼 python11讲作业
- 高性能`锁库存`/`释放库存`重构实战
- 约瑟夫环问题:有n个人围成一圈,顺序编号。从第1个人开始报数(从1-3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位?
- 超级电容充放电时间计算
- 人脸识别和人脸检测的区别
- RFID图书馆藏书防盗安全门门禁系统的应用分析
- 群晖NAS跨存储空间移动共享文件夹(NAS新增磁盘)
- 数字金额大写转换Java工具类
- verilog练习:hdlbits网站上的做题笔记(6)
- 灰色关联度分析法(GRA)_python
- es6相关面试题:1.rest参数;2.new.target;3.object.defineProperty与Proxy的区别;4.Reflect对象作用;5.lterator迭代器;6.async
- 数组转对象 和 对象转数组的简单处理
- TSDF算法原理及源码解析
- oracle 中的rollback,oracle中rollback的使用
热门文章
- GLSL Optimizer
- [UOJ50]链式反应
- 大型分布式C++框架《三:序列化与反序列化》
- 使用keepalived搭建mysql主从备份、切换
- python画图怎么调色_Python气象数据处理与绘图(19):如何使用NCL色板(调色盘思路相同)...
- 多线程是并行还是并发_并发,并行,线程,进程,异步和同步有相关性吗?
- 选择分集matlab程序,瑞利衰落信道下采用MRC分集误码性能Matlab程序
- php面向对象受保护,php面向对象二之封装,protected ,public,private权限管理
- 原始的DSH深度哈希代码
- 乌班图安装pycharm