星期五
做了一下数据结构讲的单链表,简单实现了一下创建,查找,插入,删除,遍历
#include<iostream>
using namespace std;
typedef struct LNode{
int data;
LNode *next;
}LNode,*Linklist;
void Initlist(Linklist &L)
{
L=new LNode;
L->next=NULL;
}
void CreatList(int n,Linklist &L)
{
L->next=NULL;
LNode* r=new LNode;
r=L;
for(int i=0;i<n;i++)
{
LNode* p=new LNode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
}
}
int Locatelist(Linklist &L,int e)
{
int i=1;
LNode* p=new LNode;
p=L->next;
while(p&&p->data!=e)
{
p=p->next;
i++;
}
if(!p)
return 0;
else
return i;
}
void Listinsert(Linklist &L,int i)
{
int n=0;
LNode* p=new LNode;
p=L;
LNode* s=new LNode;
while(n<i&&p)
{
p=p->next;
++n;
}
if(!p||n>i)
cout<<"输入错误"<<endl;
else
{
cin>>s->data;
s->next=p->next;
p->next=s;
}
}
void Listdelete(Linklist &L,int i,int &e)
{
int n=0;
LNode* p=new LNode;
p=L;
while(n<i-1&&(p->next))
{
p=p->next;
++n;
}
if(!(p->next)||n>i-1||i<=0)
cout<<"输入错误"<<endl;
else
{
LNode* s=new LNode;
s=p->next;
e=s->data;
p->next=s->next;
delete s;
}
}
void TraversalList(Linklist &L)
{
LNode* p=new LNode;
p=L->next;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int main()
{
int e=9999999;
int a,b;
Linklist L;
Initlist(L);
CreatList(5,L);
cout<<"删除:"<<endl;
cin>>b;
Listdelete(L,2,e);
if(e!=9999999)
cout<<"删除的数为:"<<e<<endl;
cout<<"插入:"<<endl;
cin>>a;
Listinsert(L,a);
int c;
cout<<"查找:"<<endl;
cin>>c;
if(Locatelist(L,c)==0)
cout<<"没有"<<endl;
else
cout<<Locatelist(L,c)<<endl;
cout<<"遍历:"<<endl;
TraversalList(L);
}

浙公网安备 33010602011771号