线性表的链式存储结构实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州大学实验报告
学院:计算机科学与信息学院专业:信息安全班级:
chaintable *Buildtable(int x[],int y) {
chaintable *p,*head;
p=new chaintable;
head=p;
p->data=x[0];
for(int i=1;i<y;i++)
{
p->next=new chaintable;
p=p->next;
p->data=x[i];
}
p->next=NULL;
return head;
}
bool Deltable(chaintable *&head,int x) {
if(x<1)
return false;
chaintable *relief,*p=head;
for(int i=0;i<x-2;i++)
{
if(p->next==NULL)
return false;
p=p->next;
}
if(x==1)
{
relief=head;
head=head->next;
delete relief;
if(head!=NULL)
return true;
else
return false;
}
else
{
if(p->next!= NULL)
{
relief=p->next;
p->next=p->next->next;
delete relief;
return true;
}
else
return false;
}
}
bool Inserttable(chaintable *&head,int x,int y) {
if(y<0)
return false;
chaintable *p=head,*t=new chaintable;
t->data=x;
t->next=NULL;
if(y==0)
{
t->next=head;
head=t;
return true;
}
else
{
for(int i=0;i<y-1;i++)
{
if(p->next==NULL)
return false;
p=p->next;
}
t->next=p->next;
p->next=t;
return true;
}
}
void Disptable(chaintable *p)
{
while(p!=NULL)
{
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}
bool Searchtable(chaintable *p,int &y,int x) {
if(x>=1)
{
for(int i=0;i<x-1;i++)
{
if(p->next==NULL)
return false;
p=p->next;
}
y=p->data;
return true;
}
else
return false;
}
int Location(chaintable *p,int x)
{
int i=1;
while(p!=NULL)
{
if(p->data==x)
return i;
i++;
p=p->next;
}
return 0;
}
void main()
{
int x,*temp,result;
chaintable *head;
cin>>x;
temp=new int[x];
for(int i=0;i<x;i++)
cin>>temp[i];
head=Buildtable(temp,x);
if(Deltable(head,2))
{
cout<<"删除操作结果:";
Disptable(head);
}
else
cout<<"操作失败!"<<endl;
if(Inserttable(head,23,5))
{
cout<<"将23插入到第五个数字后面的操作结果:";
Disptable(head);
}
else
cout<<"操作失败!"<<endl;
if(Searchtable(head,result,4))
{
cout<<"链表的第四个数是:";
cout<<"Search result:"<<result<<endl;
}
else
cout<<"操作失败!"<<endl;
cout<<"Please input your integer:";
cin>>x;
cout<<"Location:"<<Location(head,x)<<endl;
}
实验结果:




结果说明:1、第一行的8表示链表初始有8个数
2、第二行的8个数是链表初始化的8个数
3、第三行的结果是从链表删除了第二个数后的结果
4、第五行的结果是搜索链表第四个数
5、第六行是输入一个数要搜索的数(图中为25),第七行得出了搜索的结果。

注:请在实验报告后附程序清单。

相关文档
最新文档