📄 单向链表.txt
字号:
#include<iostream.h>
#include<stdlib.h>
#define NULL 0
struct list{
int d;
list *next;
};
list *head=(list *)malloc(sizeof(list));
list *p1=head;
int e,d;
void insert()
{
if(p1==NULL)
{
cout<<"链表是空的,请插入元素:"<<endl;
}
list *p2;p2=(list *)malloc(sizeof(list));
p1->next=p2;
p1=p2;
cout<<"请输入你要插入的位置,在第个元素前面:"<<endl;
int i,j=1;cin>>i;
cout<<"请输入你要插入的元素:"<<endl;
cin>>d;
while(j<i)
{
p1=p1->next;++j;
}
p2=p1->next;
p1->next=p2;
p2->d=e;
return;
}
void deleted()
{
if(p1==NULL)
{
cout<<"链表已空,无元素可删!"<<endl;
}
cout<<"请输入你要删除的第i元素:"<<endl;
int i,j=1;cin>>i;
list *p2;p2=(list *)malloc(sizeof(list));
p2=p1;
while(j<i)
{
p2=p2->next;++j;
}
p2=p2->next->next;
delete p2->next;
cout<<"删除完毕!"<<endl;
return;
}
void find()
{
if(p1==NULL)
{
cout<<"链表是空的,无数据可查!"<<endl;
}
list *p2;p2=(list *)malloc(sizeof(list));
p1->next=p2;
p1=p2;
cout<<"请输入你要查找的元素的位置:第i个元素。"<<endl;
int i,j=1;cin>>i;
while(j<i)
{
p2=p2->next;++j;
}
cout<<"你要找的数据是:"<<p2->d<<endl;
return ;
}
void change()
{
if(p1==NULL)
{
cout<<"链表是空的,无数据修改!"<<endl;
}
list *p2;
p2=(list *)malloc(sizeof(list));
p1->next=p2;
p1=p2;
cout<<"请输入你要修改的元素的位置:第i个元素。"<<endl;
int i,j=1;cin>>i;
while(j<i)
{
p2=p2->next;++j;
}
cout<<"你要修改的数据是:"<<p2->d<<endl;
cout<<"请输入新的数据:"<<endl;
cin>>e;
p2->d=e;
cout<<"修改完毕!"<<endl;
return ;
}
void main()
{
cout<<"请输入链表的长度:"<<endl;
int k;cin>>k;
cout<<"请输入数据:"<<endl;
list *p2;
p2=head->next;
for( int i=1;i<=k;i++)
{
cin>>p2->d;p2=p2->next;;
}
p2->next=NULL;
p2=p1;
cout<<"链表的数据是 "<<endl;
for(i=1;i<=k;i++)
{
cout<<p2->d<<" ";p2=p2->next;
}
look:cout<<" 请输入你将要进行的操作: 1.插入元素."<<endl;
cout<<" 2.删除元素."<<endl;
cout<<" 3.查找元素."<<endl;
cout<<" 4.修改数据."<<endl;
cout<<" 5.退出程序."<<endl;
int cn; cin>>cn;
switch(cn)
{
case 1:insert();break;
case 2:deleted();break;
case 3:find();break;
case 4:change();break;
case 5:cout<<"程序已退出,谢谢您的使用!再见!"<<endl; return;
default:cout<<"输入有误,请重新输入. 提示: 输入1.插入元素;输入2.删除元素"<<endl;
break;
}
goto look;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -