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

建立链表

发布网友 发布时间:2022-06-09 03:07

我来回答

1个回答

热心网友 时间:2022-07-10 18:12

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
typedef int ElemType;

typedef struct LNode {
ElemType date;
struct LNode *next;
}linklist,*link;

void IinitList(link &L)
{
if(L)delete L;
L= (link)malloc(sizeof(LNode)) ;
if (!L) exit(1);
L->next=NULL;
cout<<"链表已经建立\n";
}

int listdelete(link &L,int i,ElemType &e)
{
link p,q; int j;
p=L;j=0;
while(p->next&&j<i-1)
{
p=p->next;++j;
}

q=p->next;
p->next=q->next;
e=q->date;free(q);
cout<<"链表已经删除\n";
return 1;
}

int listinsert(link &L,int i,ElemType e)
{
link p,q;
int j;
p=L;j=0;
while(p&&j<i-1)
{
p=p->next;++j;
}
q= (link)malloc(sizeof(LNode));
q->date=e;
q->next=p->next;
p->next=q; cout<<"链表已经插入\n";
return 1;
}

void show(link l)
{ link p; int j;
p=l;j=0;
cout<<"链表的值为:\n";
while(p->next)
{
cout<<p->next->date<<endl;
p=p->next;
}
}

void destorylinst(link &L)
{
while(L)
{ link p=L;
L=L->next;

free(p) ;
}
L=NULL;
}

void print()
{
cout<<"------------------------\n";
cout<<"------------------------\n";
}

void lookfor(link l,int e)
{
if(l==NULL)
cout<<"链表未建立,请先构造链表\n" ;
else{
link p; int i=0,j=0;
p=l->next;
cout<<"你查找值的位置是:\n " ;
while(p)
{ if(p->date==e)
{ j++;
cout<<i+1<<endl;
}
p=p->next; i++;
}cout<<"查找完毕\n";
if(j==0)
cout<<"你查找的值不在链表中 、\n";

} }

void main()
{ link L=NULL; int k;
while(1)
{
cout<<"按0退出\n"<<"按1建立\n"<<"按2插入\n"<<"按3删除\n"
<<"按4清空链表\n"<<"按5查找\n" ;
print();
int a,i,j;
cin>>a;
switch(a)
{ case 0: if(L!=NULL)

destorylinst(L) ;

exit(1);

case 1:
IinitList(L);
k=0;
print();
show(L) ;
cout<<"空的链表\n";
cout<<"链表长度为: "<<k<<endl;
print();
cout<<"是否要给链表插入值:y----n\n";
char yy;
yy=getchar();
if(yy=='y')
{
cout<<"请输入值!按回车键后输入下一个,结束输入0再按回车\n";
int bb;
cin>>bb;
while(bb!=0)
{ k++;
listinsert(L,k,bb) ;
cin>>bb;
}
print();
show(L) ; cout<<"链表长度为: "<<k<<endl;
}
else break;

print();
break;

case 2:
if(L!=NULL)

{
cout<<"输入位置:\n";
cin>>i;
while(i>k+1 || i<1)
{
cout<<"位置错误,重新输入插入位置\n" ;
cin>>i;
}
cout<<"输入植;\n";
cin>>j;
listinsert(L,i,j) ;
k++;
print();
show(L);
cout<<"链表长度为:"<<k<<endl;
print();
}
else
{ cout<<"链表不存在,请先建链表\n";
print(); }
break;

case 3:
if(L!=NULL)
{
cout<<"输入位置:\n";
cin>>i;
while(i>k || i<1)
{
cout<<"位置错误,重新输入删除位置\n" ;
cin>>i;
}
listdelete (L,i,j);
cout<<"你删除的是:\n";
cout<<j<<endl ;
k--; print();
show(L);
cout<<"链表长度为:"<<k<<endl;
print();
}
else {
cout<<"链表不存在,请先建链表\n";
print();
}
break;

case 4:
destorylinst(L) ;
cout<<"链表已经清空\n";
print();
break;

case 5:
print();
cout<<"输入要查找的值;\n";
int z;
cin>>z;
lookfor(L,z);
print();
break;

default:
break ;
}
}
delete L;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑lol突然很卡怎么办啊电脑玩lolfps低怎么解决 危化品仓库有什么设备 香港中文大学2021-2022在河北,重庆最低录取分数线 ChaCheer 洽洽 南瓜子 盐焗味 500g-适用对象 老闫家小粒香南瓜子-适用对象 洽洽盐焗味南瓜子-适用对象 盐焗南瓜子里有添加明矾吗 老街口盐焗味南瓜子500g*2袋量大优惠休闲零食 一天走多少步可以减肥每天走多少步可以减肥 肉炖土豆需要炖多久时间 构造循环链表 用指针构造链表,操作链表 链表是怎样构造成的 有以下结构类型可用来构造链表的是 链表的组成 晶旦智慧家这个软件怎么样? 太空飞船的速度是几千米/秒 安装了智能家居个人信息会被泄露吗? 安装智能家居怎么设置啊?是不是特别麻烦啊? 人在国外怎样往支付宝里充钱?我有建行的卡通,但是在国外不知道怎么往里充钱,在阿联酋迪拜。 阿联酋手机打中国固话话费多少啊? 打国际长途 北京——阿联酋 电话 话费怎么算? 迪拜短信怎么查话费 现金流贴现算出来的债券价值是全价还是净价 cad图纸打印出来是空白 哪些债券实行全价交易 什么是债券交易的全价交易? 求债券全价 水晶彩泥做什么东西好? 眼睛高度近视这几天看东西弯曲怎么回事 学习用指针构造链表,操作链表 数据结构创建链表的问题 接下来如何构造空的线性链表 大学生坐公交车有优惠吗 大学生火车票半价是每个人都有吗 如何在Linux系统下支持多国语言,一些小的语种:僧伽罗语、老挝语、柬埔寨语、乌尔都语? 有没有老挝电脑操作系统 我的电脑不显示老挝文,如何解决? 如何给Windows操作系统安装多国语言包的 如何给windows系统安装语言包 win7系统语言有老挝语和泰语吗 如何 安装 操作系统 我把语言设置成老挝。现在不认识怎么办 如何在同一电脑上装双语系统 我需要linux系统下的老挝语输入法 求 ,谢谢 电力线路事故预想 电力事故预想记录在那可以找到? 2011年电力线路事故预想记录怎么写 水电站工伤保险制度 如何进行垃圾分类处理?