资源描述:
《数据结构试验指导书》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《数据结构》实验指导及报告书/学年第学期姓名:______________学号:______________班级:______________指导教师:______________计算机科学与工程学院2009实验一顺序表与链表一、实验目的1、掌握线性表中元素的前驱、后续的概念。2、掌握顺序表与链表的建立、插入元素、删除表中某元素的算法。3、对线性表相应算法的时间复杂度进行分析。4、理解顺序表、链表数据结构的特点(优缺点)。二、实验内容和要求1、阅读下列两个函数,写出函数的基本功能。并运行程序,写出结果。#definem
2、100typedefstruct{intelem[m];intlen;}sqlist;voidcreatsqlist(sqlist*l){基本功能:___________________inti;scanf("%d",&l->len);for(i=0;ilen;i++)scanf("%d",&l->elem[i]);}voidins(sqlist*l,intk){基本功能:___________________intj;for(j=l->len-1;j>=k;j--){l->elem[j+1]=l->ele
3、m[j];}l->elem[k]=99;l->len++;}intmain(){inti;sqlist*l,L;l=&L;creatsqlist(l);for(i=0;ilen;i++)printf("%d",l->elem[i]);printf("");ins(l,2);for(i=0;ilen;i++)printf("%3d",l->elem[i]);return0;}l算法分析与运行结果2、为第1题补充查找功能函数,根据给定的元素值,返回查找的结果:若找到则返回下标,未找到则返回-1。l算
4、法代码3、阅读下列两个函数,写出函数的基本功能。并运行程序,写出结果。typedefstructlnode{intdata;structlnode*next;}node,*nodeptr;nodeptrcreat(){基本功能:___________________nodeptrl,p,q;inti,n,e;l=(nodeptr)malloc(sizeof(node));q=l;q->next=0;scanf("%d",&n);for(i=1;i<=n;i++){p=(nodeptr)malloc(sizeof(nod
5、e));scanf("%d",&e);p->data=e;q->next=p;q=p;}q->next=0;returnl;}voidout(nodeptrl){基本功能:___________________nodeptrp;p=l->next;while(p){printf("%3d",p->data);p=p->next;}}intmain(){nodeptrl;l=creat();out(l);}l算法分析与运行结果4、为第3题补充插入功能函数和删除功能函数。l算法代码以下为选做实验:5、循环链表的应用(约瑟夫
6、回环问题)n个数据元素构成一个环,从环中任意位置开始计数,计到m将该元素从表中取出,重复上述过程,直至表中只剩下一个元素。提示:用一个无头结点的循环单链表来实现n个元素的存储。l算法代码6、设一带头结点的单链表,设计算法将表中值相同的元素仅保留一个结点。提示:指针p从链表的第一个元素开始,利用指针q从指针p位置开始向后搜索整个链表,删除与之值相同的元素;指针p继续指向下一个元素,开始下一轮的删除,直至p==null为至,既完成了对整个链表元素的删除相同值。l算法代码三、实验小结四、教师评语实验二栈和队列一、实验目的1、
7、掌握栈的结构特性及其入栈,出栈操作;2、掌握队列的结构特性及其入队、出队的操作,掌握循环队列的特点及其操作。二、实验内容和要求1、阅读下列函数,写出函数的基本功能。并运行程序,写出结果。#defineStack_Size50typedefstruct{intelem[Stack_Size];inttop;}SeqStack;intpush(SeqStack*S,intx){基本功能:___________________if(S->top==Stack_Size-1)return(0);S->top++;S->elem
8、[S->top]=x;return(1);}intpop(SeqStack*S,int*x){基本功能:___________________if(S->top==-1){printf("stackempty");return(0);}else{*x=S->elem[S->top];S->top--;return(1);}}voi