经典数据结构上机题-答案_第1页
经典数据结构上机题-答案_第2页
经典数据结构上机题-答案_第3页
经典数据结构上机题-答案_第4页
经典数据结构上机题-答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

经典数据结构上机题—答案经典数据结构上机题—答案经典数据结构上机题—答案经典数据结构上机题—答案编制仅供参考审核批准生效日期地址:电话:传真:邮编:数据结构上机实验题目实验一线性表的顺序存储结构实验学时2学时背景知识:顺序表的插入、删除及应用。目的要求:1.掌握顺序存储结构的特点。2.掌握顺序存储结构的常见算法。实验内容1.输入一组整型元素序列,建立顺序表。2.实现该顺序表的遍历。3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。4.判断该顺序表中元素是否对称,对称返回1,否则返回0。5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。6.输入整型元素序列利用有序表插入算法建立一个有序表。7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。8.利用该顺序结构实现循环队列的入队、出队操作。8.编写一个主函数,调试上述算法。#include<>#include<>#defineOVERFLOW0#defineMAXSIZE100typedefintElemType;typedefstructlist{ElemTypeelem[MAXSIZE];intlength;}Sqlist;voidCreatlist(Sqlist&L){inti;printf("请输入顺序表的长度:"); 立一个顺序表.\n");printf("2.以输出的形式对该顺序表遍历.\n");printf("3.在顺序表中进行顺序查找某一元素x.\n");printf("4.在顺序表的第i个位置上插入一个元素x.\n");printf("5.删除顺序表中第i个元素.\n");printf("6.利用有序表插入算法建立一个有序表.\n");printf("7.建立两个非递减有序表,并把它们合并成一个非递减有序表.\n");printf("8.输入一个元素x,把它插入到有序表中,使顺序表依然有序.\n");while(1){printf("请选择:");scanf("%d",&n);switch(n){case1:Creatlist(L);break;case2:printlist(L);break;case3:printf("请输入要查找的元素x:"); scanf("%d",&x); Searchlist(L,x);break;case4:printf("请输入要插入的位置i:"); scanf("%d",&i); if(i<1||i>+1){ printf("error!\n");break;} printf("请输入要插入的值x:"); scanf("%d",&x); Inseri(L,i,x); printlist(L);break;case5:printf("请输入要删去的元素的位置i:"); scanf("%d",&i); if(i<1||i>{ printf("error!\n");break;} Delete(L,i); printlist(L);break;case6:Creatlist_sorted(L); printlist(L);break;case7:Creatlist_sorted(L); Creatlist_sorted(M); Merger(L,M,N); printlist(N);break;case8:Creatlist_sorted(L); printf("请输入要插入的元素x:"); scanf("%d",&x); Insert(L,x); printlist(L);break;}}}实验二链式存储结构(一)----单向链表的有关操作实验学时3学时背景知识:单向链表的插入、删除及应用。目的要求1.掌握单向链表的存储特点及其实现。2.掌握单向链表的插入、删除算法及其应用算法的程序实现。实验内容1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。2.遍历单向链表。3.把单向链表中元素逆置(不允许申请新的结点空间)。4.在单向链表中删除所有的偶数元素结点。5.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。6.利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。7.利用算法5建立两个非递减有序单向链表,然后合并成一个非递减链表。8.利用算法1建立的链表,实现将其分解成两个链表,其中一个全部为奇数,另一个全部为偶数(尽量利用已知的存储空间)。*9.采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。10.在主函数中设计一个简单的菜单,分别调试上述算法。*11.综合训练:利用链表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等,并能够实现将数据存储到文件中)/*单向链表的有关操作示例*//*类型定义及头文件部分,文件名为*/#include<>#include<>typedefintElemType;.迷宫约定,x方向为行方向,y方向为列方向,迷宫开始坐标(左上角)为(1,1)。#include<>#include<>#include<>structnode{intsign;=i;maze[i][j].y=j;maze[i][j].flag=maze_flag[i][j];if(maze[i][j].flag==0){maze[i][j].h=6-i+6-j;maze[i][j].sign=maze[i][j].f=maze[i][j].g=maze[i][j].old=0;}elsemaze[i][j].h=-1;}for(i=0;i<7;i++)=maze[0][0].h;link*s2;s2=successor;if(open->next!=open)++;=bestnode->+bestnode->;{maze[s2->][s2->].g=s2->;maze[s2->][s2->].f=maze[s2->][s2->].g+maze[s2->][s2->].h;out_open(maze[s2->][s2->]);in_closed(maze[s2->][s2->]);maze[s2->][s2->].old=0;}elsecontinue;}elseif(s2->==2){maze[s2->][s2->].g=s2->;maze[s2->][s2->].f=maze[s2->][s2->].g+maze[s2->][s2->].h;out_closed(maze[s2->][s2->]);in_closed(maze[s2->][s2->]);maze[s2->][s2->].old=0;}elsecontinue;}else=maze[s2->][s2->].g+maze[s2->][s2->].h;}s2=s2->next;}s2=successor;}}elseprintf("error!!Thismazedoesnothavetheanswer!");return(0);}实验内容:

以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障

碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通

路,或得出没有通路的结论。

要求:首先实现一个顺序或链表做存储结构的栈类型,然后编写一个

求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其

中:(i,j)表示迷宫的坐标,d表示走到下一坐标的方向。如对下面的

迷宫,输出的一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,

2,3),(3,1,2),…...

迷宫约定,x方向为行方向,y方向为列方向,迷宫开始坐标(左上

角)为(1,1)。基本相同;#include<>

#include<>

#include<>

typedefstructQElemType

{

intx,y;

structQElemType*parent;背景知识:字符串结构的实现及匹配操作目的要求:掌握字符串结构的特点;掌握字符串匹配操作的意义及实现;#include<>

intStrLen(chars[])

{

inti=0;

while(s

!='\0')

{

i++;

}

returni;

}

intFindeStrIndex(char*s1,char*s2)

{

inti;

intj;

intindex=0;

intcount=StrLen(s2);//得到s2有多少个字符

for(i=0;s1

!='\0';i++)

{

j=0;

if(s1

==s2[j])

{

if(count==1)

{

index=i;

break;

}

for(j=1;j<count;j++)

{

if(s2[j]!=s1[++i])

{

index=-1;

break;

}

index=(--i);

}

if(index!=-1)//不等-1表示找到了,跳出循环

break;

}

}

returnindex;

}

voidmain()

{

chars1[]="abcd1235";

chars2[]="d1";

chars3[]="3";

i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论