资源描述
#include <iostream>
#include <cstdlib>
usingnamespacestd;
classNode
{
public:
intdata;
Node *next;
public:
Node()
{
next=NULL;
}
Node(inta)
{
data=a;
next=NULL;
}
};
classList
{
public:
Node *head;
public:
List()
{
head=newNode();
}
~List()
{
Node *p=head->next;
while(p)
{
Node *s=p;
p=s->next;
free(s);
}
free(head);
}
voidinitial()
{
Node *zhen;
zhen=head;
inti;
cin>>i;
for(intj=0;j<i;j++)
{
Node *s=newNode();
cin>>s->data;
zhen->next=s;
zhen=s;
s->next=NULL;
}
}
intgetList_Length()
{
Node *ss;
inti=0;
ss=head->next;
while(ss)
{
i++;
ss=ss->next;
}
returni;
}
intsearch(inta)
{
Node *find;
find=head->next;
if(a>this->getList_Length()||a<=0)
return0;
else
{
for(inti=1;i<a;i++)
{
find=find->next;
}
returnfind->data;
}
}
intInsert_List(inta,intb)
{
Node *Insert;
Insert=head->next;
if(a==1)
{
Node *ss=newNode(b);
head->next=ss;
ss->next=Insert;
return1;
}
if(a>this->getList_Length()+1||a<=0)
return0;
else
if(a>1)
{
Insert=head->next;
for(inti=0;i<a-2;i++)
{
Insert=Insert->next;
}
Node *ss=newNode(b);
ss->next=Insert->next;
Insert->next=ss;
return1;
}
}
intDelete_List(inta)
{
Node *find;
inti;
find=head->next;
if(a==1)
{
Node *ss;
ss=head->next;
head->next=ss->next;
free(ss);
return1;
}
if(a<=0||a>this->getList_Length())
return0;
elseif(a>1)
{
for(i=0;i<a-2;i++)
{
find=find->next;
}
Node *ss;
ss=find->next;
ss->next=find->next;
free(ss);
return1;
}
}
voidDisplay()
{
Node *ss;
ss=head->next;
while(ss!=NULL)
{
cout<<ss->data<<" ";
ss=ss->next;
}
cout<<endl;
}
};
intmain()
{
inta,c,i;
List list;
list.initial();
list.Display();
for(i=0;i<2;i++)
{
cin>>a>>c;
if(list.Insert_List(a,c)==0)
cout<<"error"<<endl;
else
list.Display();
}
for(i=0;i<2;i++)
{
cin>>a;
if(list.Delete_List(a)==0)
cout<<"error"<<endl;
else
list.Display();
}
for(i=0;i<2;i++)
{
cin>>a;
if(list.search(a)==0)
cout<<"error"<<endl;
else
cout<<list.search(a)<<endl;
}
return0;
}
展开阅读全文