📄 list.cpp
字号:
#include <stdio.h>
#include <iostream.h>
typedef struct LNode{
long date;
struct LNode *next;
} LNode,*LinkList;
void CreatList_L(LinkList &L);
int ListLength(LinkList L);
void ShowList_L(LinkList L);
void ListInsert_L(LinkList &L);
void ListDelete_L(LinkList &L);
void LocateList_l(LinkList &L);
void CreatList_L(LinkList &L){
L = new LNode;
L->next=NULL;// 建立空表
cout<<"1-正序输入 2-逆序输入"<<endl;
int i;
cin>>i;
if(i==1)
{
LinkList p;
p=L;
cout<<"请输入您要建立的单向链表的数据个数:"<<endl;
int n;
cin>>n;
for(int i=0;i<n;i++){
LinkList q=new LNode;//创建要插入的结点并初始化
q->next=NULL;
cout<<"请输入数据:";
cin>>q->date;
p->next=q;p=q;}
}
if(i==2)
{
LinkList p;
cout<<"请输入您要建立的单向链表的数据个数:"<<endl;
int n;
cin>>n;
for (i = n; i > 0; --i) {
p = new LNode;
cout<<"请输入数据:";
cin>>p->date;
p->next = L->next; L->next = p;}
}
}
int ListLength(LinkList L){
LinkList p;
p = L->next ;
int j=1;
while(p->next)
++j;
return j;
}
void ShowList_L(LinkList L){
printf("此时您的单向链表是:");
LinkList p;
p=L->next;
while(p)
{ cout<<"|"<<p->date<<"|"<<"->";
p=p->next;}
cout<<"NULL"<<endl;
}
void ListInsert_L(LinkList &L){
LinkList p;
p=L;
int i;
cout<<"请输入您要插入结点的位置:"<<endl;
cin>>i;
int j=0;
while(p&&j<i-1){
p=p->next;++j;
}
if(!p||j>i)
cout<<"插入错误!"<<endl;
else
{
LinkList s=new LNode;
if(s==NULL)
cout<<"创建结点失败!"<<endl;
else
{
cout<<"请输入您要插入的结点数据 :"<<endl;
cin>>s->date;
s->next=p->next;p->next=s;
}
}
}
void ListDelete_L(LinkList &L){
cout<<"1-全部删除! "<<"2-删除一个结点"<<endl;
int i;
cin>>i;
LinkList p;
if(i==1)
{ while(L->next)
{p=L->next;L->next=p->next;delete(p);}
cout<<"链表已经清空!请重新建立新链表!"<<endl;
}
if(i==2)
{
int j,i=0;
cout<<"请输入您要删除的结点的位置:"<<endl;
cin>>j;
p=L;
while(p->next&&i<j-1){
p=p->next;++i;
}
if(!p->next||i>j)
cout<<"删除错误!"<<endl;
else
{LinkList q;
q=p->next;p->next=q->next;delete(q);}
}
}
void LocateList_L(LinkList &L){
int i,j=1;
LinkList p;
// cout<<ListLength(L);
cout<<"请输入您要查找的元素的位置:"<<endl;
cin>>i;
p=L->next;
while(p&&j<i){
p=p->next;++j;
}
if(!p||j>i)
cout<<"查找错误!"<<endl;
else
cout<<"您要查找的元素是:"<<p->date<<endl;
}
void main()
{
cout<<"带头结点的单向链表:"<<endl;
LinkList L;
int i;
do
{
cout<<"1-建立"<<" "<<"2-插入"<<" "<<"3-删除"<<endl<<"4-查找 "<<"5-显示"<<" "<<"6-退出"<<endl<<"请选择:1/2/3/4/5/6:";
cin>>i;
switch(i){
case 1: CreatList_L(L);ShowList_L(L);break;
case 2: ListInsert_L(L);ShowList_L(L);break;
case 3: ListDelete_L(L);ShowList_L(L);break;
case 4: LocateList_L(L);break;
case 5: ShowList_L(L);break;
default:break;}
}
while(i!=6);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -