//单链表的建立(头插法),插入,删除,查找、修改、计数、输出
#include<iostream.h>
#define elemtype int
struct link
{ elemtype data;//元素类型
link *next; //指针类型,存放下一个元素地址
};
//头插法建立带头结点的单链表
link *hcreat()
{ link s,p;
elemtype i;
cout<<“输入多个结点数值(用空格分隔),为0时算法结束”;
cin>>i;
p=new link;
p->next=NULL;
while(i) //当输入的数据不为0时,循环建单链表
{s=new link;
s->data=i;
s->next=p->next;
p->next=s;
cin>>i; }
return p;
}
//输出单链表
void print(1ink *head)
{
1ink *p;
p=head->next;
while(p->next!=NULL)
{
cout<<p->data<<“->“; //输出表中非最后一个元素
p=p->next;
}
cout<<p->data; //输出表中最后一个元素
cout<<endl;
}
∥在单链表head中查找值为x的结点
Link *Locate(1ink *head,elemtype x)
{
Link *p;
p=head->next;
while((p!=NULL)&&(p->data!=x))
p=p->next;
return p; }
//在head为头指针的单链表中,删除值为x的结点
void deletel(1ink *head,elemtype x)
{
1ink *p, *q;
q=head;
p=head->next;
while((p!=NULL)&&(p->data!=x))
{
q=p;
p=p->next;}
If(p==NULL) cout<<“要删除的结点不存在”;
else
q->next=p ->next;
delete(p);
}
}
//在头指针head所指的单链表中,在值为x的结点之后插入值为y的结点
void insert(1ink *head,elemtype x,elemtype y)
{ link *p, *s;
s=new link;
s->data=y;
if(head->next==NULL) //链表为空
{
head->next=s;
s->next=NULL:
}
p=Locate(head,x);//调用查找算法 ‘
if(p==NULL)
cout<<“插入位置非法”:
else
(s->next=p->next;
p->next=s;
}
}
//将单链表p中所有值为x的元素修改成y
void change(1ink *p,elemtype x,elemtype y)
{
link *q;
q=p->next;
while(q!=NULL)
{ if(q->data==x) q->data=y;
q=q->next;
}
}
void count(1ink *h) //统计单链表中结点个数
{
1ink *p;int n=0;
p=h->next;
while(p!=NULL)
{n++;p=p->next;}
return n;
}
void main()
{ int n;
elemtype x,y;
link *p' *q;
p=hcreat(); //头插法建立链表
print(p); //输出刚建立的单链表
cout<<“请输入要删除的元素”;
cin>>y;
deletel(p,y);
print(p); //输出删除后的结果
cout<<“请输入插入位置的元素值(将待插元素插入到它的后面)”;
cin>>x;
cout<<“请输入待插元素值”;
cin>>y;
insert(p,x,y);
print(p); //输出插入后的结果
cout<<“请输入要修改前、后的元素值”;
cin>>x>>y;
change(p,x,y);
print(p);
cout<<“请输入要查找的元素值”;
cin>>x;
q=Locate(p,x);
if(q==NULL)cout<<x<<“不在表中,找不到!”<<endl;
else cout<<x<<“在表中,已找到!”<<endl;
n=count(p);
cout<<“链表中结点个数为:”<<n<<endl:
}
danlianbiao.rar_singly linked list
版权申诉
2 浏览量
2022-09-21
09:08:45
上传
评论
收藏 1KB RAR 举报
我虽横行却不霸道
- 粉丝: 72
- 资源: 1万+
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈