问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

已知一个线性表元素按非递减有序排列,怎么编写一个函数删除线性表中多余的值相同的元素的单链表?

发布网友 发布时间:2022-05-12 10:14

我来回答

1个回答

热心网友 时间:2023-10-03 03:51


代码如下运行通过:

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

typedef int ElemType;

typedef struct Node

{

ElemType data;

struct Node *next;

}Node,*Sqlist;

void IniList(Sqlist *L)            /*初始化*/

{

*L=(Sqlist)malloc(sizeof(Node));

(*L)->next=*L;

}

void Create_cLinkList(Sqlist L)   /*尾插法建立链表*/

{

Node *s;

int c;

int flag=1;

bool bl;

L->data=NULL;

L->next=NULL;

while(flag)

{

bl=scanf("%d",&c);

if(bl)

{

s=(Node *)malloc(sizeof(Node));

s->data=c;

s->next=L->next;

L->next=s;

}

else

{

flag=0;

}

}

}

void Treserve( Sqlist &L)   /*比较链表中的每个数字,重复就删除*/

{   

Node *p;

Node *s;

s=p=L->next;

while(p->next!=NULL)

{

p=s;

p=p->next;

if(s->data==p->data)

{

if(p->next==NULL)

s->next=NULL;

else

s->next=p->next;

}

else

{

s=p;

}

}  

}

main()

{

Sqlist la;

Node *p;

Node *s;

IniList(&la);

printf("输入循环单链表A数据,按从小到大的顺序输入,输入$符号结束:\n");

Create_cLinkList(la);

Treserve( la);

s=la;

p=la->next;

while(s->next!=NULL)   /*输出改变后的链表*/

{

printf("%d",p->data);

s=p;

p=p->next;

}

}

热心网友 时间:2023-10-03 03:51


代码如下运行通过:

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

typedef int ElemType;

typedef struct Node

{

ElemType data;

struct Node *next;

}Node,*Sqlist;

void IniList(Sqlist *L)            /*初始化*/

{

*L=(Sqlist)malloc(sizeof(Node));

(*L)->next=*L;

}

void Create_cLinkList(Sqlist L)   /*尾插法建立链表*/

{

Node *s;

int c;

int flag=1;

bool bl;

L->data=NULL;

L->next=NULL;

while(flag)

{

bl=scanf("%d",&c);

if(bl)

{

s=(Node *)malloc(sizeof(Node));

s->data=c;

s->next=L->next;

L->next=s;

}

else

{

flag=0;

}

}

}

void Treserve( Sqlist &L)   /*比较链表中的每个数字,重复就删除*/

{   

Node *p;

Node *s;

s=p=L->next;

while(p->next!=NULL)

{

p=s;

p=p->next;

if(s->data==p->data)

{

if(p->next==NULL)

s->next=NULL;

else

s->next=p->next;

}

else

{

s=p;

}

}  

}

main()

{

Sqlist la;

Node *p;

Node *s;

IniList(&la);

printf("输入循环单链表A数据,按从小到大的顺序输入,输入$符号结束:\n");

Create_cLinkList(la);

Treserve( la);

s=la;

p=la->next;

while(s->next!=NULL)   /*输出改变后的链表*/

{

printf("%d",p->data);

s=p;

p=p->next;

}

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...和O3、1H216O和2H218O.下列有关说法正确的是( )A.35Cl和37Cl互称为... ...做环境分析指示物.下列说法中正确的是( )A.1H216O在相同 ...1H、2H、3H,氧也有3钟同位素:16O、17O、18O,那么水的种类最多有... 全身没力气、想睡觉怎么回事 我的乙肝检查单 请帮忙看看 帮忙看看乙肝检查报告 谢谢 万分感谢!好人一生平安 麻烦帮我看看乙肝两对半的结果 五冶集团由哪家控股 我的苹果6手机百度视频播放不了是什么原因? 高一怎么选科历生地 单链表,把相同元素删除 有足够多的钱,然后用几十上百个账户去打新股,这样是不是就可以提高中签率呢? 求代码:删除线性链表里的重复元素 用STL中的list对象设计一个函数删除链表中的所有重复元素 几个打新股问题 在数据结构有序的顺序表中,怎样删除重复的数据 线性表中单链表怎么删除有重复元素的结点 C语言,删除单链表重复数据 脸烫怎么回事 LED光电烤箱和真空干燥箱有什么不同? c++ 有序链表删除重复元素 如何从链表中删除重复数据 c语言链表 删除相同的元素值 删除链表中的重复元素 如何编程删除以有序链表表示的集合中的重复元素 大多数人都在用的聊天软件和社交软件有哪些? 万用表如何测试com,nc,no三个接线桩 怎样用万用表查接地?是用黑线(COM档)接地吧? 我女儿1岁9天。前两天打了预防针后低烧后面手脚起红疹。几个小时后手掌有一两颗类似水泡。一直不吃饭也 儿孑两岁,昨天发烧看了医生,今天好了,却手脚出现几个小红点,还有一个水泡。他老是去抓它,请问是手足 数据结构删除链表重复节点 打新股一般多少签能中一个签? C语言删除两条单链表相同的元素? 已知一个线性表元素按非递减有序排列,编写一个函数删除线性表中多余的值相同的元素。是单链表 有序链表插入元素,修改该程序,使得可以删除链表中的一个元素 您好,向您请教一下,荧光倒置显微镜和倒置荧光显微镜有什么区别吗? 倒置荧光显微镜专用细胞培养皿有哪些规格? 如何将倒置荧光显微镜下看到的细胞数转化为实际的细胞数 野菊花和胎菊哪个对明目益肝有好处? 高血压喝白菊花与胎菊哪个好 新出的金庸群侠传3(小游戏)怎么玩啊? 东邪西毒online的游戏介绍 都是情侣装,为何韩剧中的情侣装总能甜度爆表? 桃花岛武学在哪 黄晓明和Baby穿情侣装隔空秀恩爱,你喜欢什么风格的情侣装? 情侣穿情侣装出门时,往往会显得很违和还是很甜蜜? 如何评价《长沙保卫战》电视剧? 李本忠是哪个电视剧的 抗日名将薛岳的参谋长是谁 长沙会战有什么样的评价 谁看过电视刷长沙保卫战,拍的好坏评论一下老师们。