数据结构实验报告2由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构实验报告二”。
南京信息工程大学实验(实习)报告
实验(实习)名称数据结构实验(实习)日期 2011-11-9得分指导教师周素萍
系 公共管理专业信息管理与信息系统年级班次 学号2010230700
3实验二数据结构第二次实验要求(链表)
【实验目的】
1、链表的基本操作及 C 语言实现
【实验要求】
1、用 C 语言建立自己的链表结构的程序库,实现链表的基本操作。
2、对链表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序 表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合 中,并输出。
3、撰写实验报告并附上集合操作的程序和结果。
【实验内容】
1、根据教材定义的链表结构,用 C 语言实现链表结构的创建、插入、删除、查找等操作;
2、利用上述链表操作实现如下程序:建立两个链表表示的集合(集合中无重复的元素),并求这样的两个集合的并。
【实验结果】
[实验数据、结果、遇到的问题及解决]
一、Status DeleteAndInsertSub(LinkList &la,LinkList &lb,int i,int j,int len){
LinkList p,q,s,prev=NULL;int k=1;if(inext;k++;
}
// 在la表中查找第i+len-1个结点 q=p;k=1;while(q&&knext;else prev->next=q->next;// 将从la中删除的结点插入到lb中 if(j=1){} else{} return OK;s=lb;} if(!s)return INFEASIBLE;q->next=s->next;s->next=p;//完成插入 k=1;q->next=lb;lb=p;q=p->next;k++;while(s&&knext;k++;
二、// 将合并逆置后的结果放在C表中,并删除B表
Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C){
LinkList pa,pb,qa,qb,pt;pa=A;pb=B;qa=pa;qb=pb;// 保存pa的前驱指针 // 保存pb的前驱指针 pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){ if(pa->data
data){pt=pa;pa=pa->next;
qa->next=pa;
free(pt);
}
else
if(pa->data>pb->data){pt=pb;
pb=pb->next;qb->next=pb;free(pt);}
else{
qa=pa;
pa=pa->next;}
}
while(pa){
pt=pa;
pa=pa->next;
qa->next=pa;
free(pt);
}
while(pb){
pt=pb;
pb=pb->next;
qb->next=pb;
free(pt);
}
pb=B;
free(pb);
return OK;
}