安徽工程大学数据结构各章作业及实验.docx
- 文档编号:20119246
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:14
- 大小:68.21KB
安徽工程大学数据结构各章作业及实验.docx
《安徽工程大学数据结构各章作业及实验.docx》由会员分享,可在线阅读,更多相关《安徽工程大学数据结构各章作业及实验.docx(14页珍藏版)》请在冰豆网上搜索。
安徽工程大学数据结构各章作业及实验
第一章
•一、简答题
1设有数据逻辑结构为:
•B=(K,R);K={K1,K2…Kn};
•R={
•画出这个逻辑结构的图示,并确定相对于关系R,哪些结点是开始结点,哪些结点是终端结点
2有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑图形表示,并指出它们分别属于何种结构。
1)A=(K,R),其中K={a,b,c,d,e,f,g,h};
R={r},r={,,
2)B=(K,R),其中K={a,b,c,d,e,f,g,h};
R={r},r={
•二、求下列程序段的时间复杂度
(1)for(I=0;I for(j=0;j A[I][j]=0;return1; (2)I=s=0;else While(s {I++;} s+=I;(5)s=0; }for(I=0;I<=n;I++) (3)I=1;for(j=0;j<=n;j++) While(I<=n)for(k=0;k I=I*3;s++; •第二章 •一.选择、填空: •1不带头结点的单链表head为空的判定条件是_;带头结点的单链表head为空的判定条件是_ •A.head==nullB.head->next=null •C.Head->next=headD.Head! =null •2在循环双链表P所指接点之前插入S所指结点的操作是__ •A.P->prior=S;S->next=P;p->next=S;S->prior=P->prior •B.P->prior=S;P->prior->next=S;S->next=P;S->prior=P->prior •C.S->next=P;S->prior=P->prior;P->prior=S;P->right->next=S •D.S->next=P;S->prior=P->prior;P->prior->next=S;P->prior=S •3.双向链表删除P结点,执行的主要语句是_______ •4.在单链表中,在指针P所指结点后面插入一个结点S的语句是_________ •5.在单链表中删除P指针所指结点的的后一个结点的语句是_________ •6.向长度为n的向量第i个元素C(0≤i≤n-1)之前插入一个元素时,需后移____个元素;删除长度为n的向量第i个元素C(0≤i≤n-1)之前插入一个元素时,需前移____个元素 • 第三章作业 一选择、填空题 1判定一个栈(最多n个元素)为空的条件是__;判定为满的条件是__ A.S->top! =0B.S->top==0 C.S->top! =nD.S->top==n 2一个栈序列: a,b,c,d,e,则栈不可能输出序列__ A.abcdeB.decbaC.dceabD.Edcba 3判定一个队列Q(最多n个元素)为空的条件___是为满的条件是___ A.Q->near-Q->front==nB.Q->near-Q->front+1==n C.Q->front=Q->rearD.Q->front=Q->rear+1 4判定循环队列Q(最多n个元素)为空的条件是___;为满的条件是__ A.Q->rear==Q->front B.Q->rear==Q->front+1 C.Q->front==(Q->rear+1)%n D.Q->front==(Q->rear-1)%n 二综合题 1设有4个元素ABCD进栈,写出它们所有可能的出栈次序共几种 2设计一个算法,利用栈的基本运算将指定栈中的内容进行逆转 •第四章作业 •一填空、选择题 •1.___是C语言中“abcd321ABCD”的子串。 •A.abcdB.321ABC.”abcAB”D.“21AB” •2.有串S1=‘ABCDEFG’,S2=‘PQRST’,设con(x,y)返回串X与串Y的连接串,subs(s,I,j)返回从序号i字符开始的j个字符组成的子串,len(s)返回串s长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是___(设置串字符从0开始编号) •A.BCDEFB.BCDEFGC.BCPQRSTD.CDEFGFG 3、串的两种基本存储方式为____和_____ 4、空串是____个字符的串,空白串是____个字符的串 二、编程题 1以顺序结构存储串时,写出两串s1,s2首尾相连成一个串,其中s1在前s2在后 第五章作业 一、选择与判断: 1数组元素间的关系是_ (1)___,一维数组和线性表的区别是__ (2)__ (1) A线性B树形C既线性又树形D非线性又非树形 (2) A前者长度固定,后者长度可变 B后前者长度固定,前者长度可变 C两者长度固定 D两者长度可变 2二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下标i范围从0到4,下标j范围从0到5,M按行存储时元素M[3][5]起始地址与M按列存储时元素___起始地址相同 A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4] 3、设一个有10阶对称矩阵A,采用压缩存储方式,以行序为主存储,a1,1为第一个元素,其地址为1,每个元素站1个地址空间,则a8,5的地址为____ A、13B、33C、18D、40 4、一个n*n的对称矩阵,如果以行或列为主序放入内存, 则容量为_____ A、n*nB、n*n/2C、n*(n+1)/2D、(n+1)*(n+1)/2 5、稀疏矩阵一般的压缩存储方法有两种,即____和____ 6、设广义表L=((a,c),(b,d)),运算head(head(tail(L)))是____ 7、对于广义表L=((),()),则head(L)是____,L长度是______,tail(L)是______ 8、设A=(a,b,c);B=(A,(c,d));C=(a,(B,A),(e,f)),求head(head(head(tail(c))))=_________ 第六章作业 •一、选择、填空 •1、设高度为h的二叉树只有度为0和2的结点(第一层为根结点所在的层),则此类二叉树所包含的结点数至少为_____ •A2hB2h-1C2h+1Dh+1 •2、下图1的二叉树中序遍历为____ •AabcdgefBdfebagcCdbaefcgDdefbagc •3、如果T2是由有序树T1转换而来的二叉树,那么T1结点的先序就是T2中结点的___ •A先序B中序C后序D层次序 图2 •4、深度为5的二叉树至多有____个结点 •A16B32C31D10 •5、根据使用频率为5个字符设计的哈夫曼编码不可能是___ •A111,110,10,01,00B000,001,010,011,1 C100,11,10,1,0D001,000,01,11,10 •6、如图2所示的二叉树,回答以下问题 (1)其中序遍历序列为____________ (2)其先序遍历序列为____________ (3)其中后序遍历序列为____________ (4)该二叉树对应森林是____________ 5、以数据集{4,5,6,7,10,12,18}为结点权值所构造的哈夫曼树为______,其带权路径长度为________ 二、简答题: 1假设二叉树bt的存储结构如下: 其中bt为树根结点指针,left,right分别为结点的左、右孩子指针域,在这里使用结点编号作为指针域值,0表指针域为空,data表结点数据域,请完成下列各题: (1)画出二叉树bt的逻辑结构 (2)写出按先序、中序、后序遍历bt所得到的结点序列 6 •2、假设二叉树采用顺序存储结构如下表所示 • (1)画出二叉树表示 • (2)写出先序、中序、后序遍历结果 •(3)写出结点值C的双亲结点,其左右孩子 •(4)画出把此二叉树还原成森林的图 •第七章图 •一选择、填空 •1、在一个图中,所有顶点的度数之和等于所有边数的____倍,对于一个有向图,所有等点的入度之和等于所有顶点出度之和的____倍 •A、½B、1C、2D、4 •2、一个有n个顶点的无向图最多有____条边,若采用邻接矩阵表示,则该矩阵的大小是_____ •A、nBn(n-1)/2Cn-1Dn*n •3、已知一个图,若从顶点a出发按深度有限搜索进行遍历,则可能得到的一种顶点序列是_____;若从顶点a出发按广度有限搜索进行遍历,则可能得到的一种顶点序列是_____ A、abecdfB、aedfcbC、aebcfdD、abcefd 4、已知一有向图的邻接表存储结构如图所示,则 (1)根据有向图深度有限搜索遍历算法,从顶点V1出发得到的顶点序列是_____,根据根据有向图广度有限搜索遍历算法,从顶点V1出发得到的顶点序列是_____ A、V1V2V3V4V5B、V1V3V2V4V5 C、V1V3V4V5V2D、V1V4V3V5V2 5、n个顶点的连通图至少___条边 A、nB、n-1C、n*nD、n+1 二、书上P232——8-1,8-2,8-3 实验一、线性表表示及实现 实验题目: 线性表顺序和链表表示及实现 实验目的: 1学会定义线性表顺序存储结构 2通过对顺序存储结构的分析,掌握线性表动态分配存储及基本操作,熟悉线性表基本操作及函数定义 3进一步熟悉C语言基本结构,掌握程序头文件,实现文件及主文件关系及各作用 实验内容: 建立10个数据元素的线性表L={1,2,3…10}指定在第2位置插入元素25,然后删除第4个位置上的元素,分别显示各步骤结果 实验二: 顺序栈的实践 实验目的: 熟练掌握栈的结构、特点及有关概念,学会建立栈的基本操作,了解栈满和栈空的判断条件及描述方法 实验内容: 建立一个字符栈 ⑴用顺序栈设计实现堆栈,堆栈操作集合包括初始化,判断栈空,入栈,出栈,取栈顶元素等 (2)设计一个主函数对顺序栈进行测试,如: 依次输入数据元素1,2,3,4,5,然后判断栈是否为空,显示栈顶元素,出栈并在屏幕上显示出栈的数据元素 实验三: 栈和队列的综合应用 实验目的: 了解并掌握顺序栈及顺序队列的基本概念和基本操作。 熟练掌握栈和队列的结构及这两种数据结构的特点,在两种存储结构上实现栈的基本运算。 特别注意栈空,栈满的判断条件;熟练掌握链队列和顺序循环队列的基本运算并能简单应用 实验题目: 1、回文是指一个字符串从头到尾和从尾到头都一样,如串“”abcba”, 设字符串从输入设备一个一个字符读入,至”#”结束,请用顺序栈和顺序队列两种算法判断一个字符串是否为回文 2、请利用所学栈的知识设计一个进制转换器,实现十进制到八进制的转换 实验四、堆分配存储表示的串操作 实验目的: 了解串的顺序存储的两种表示方式: 定长顺序存储和堆分配存储,掌握其基本概念 实验内容: 利用堆分配存储法,生成两个值等于串常量的串S、T,比较两串的大小,输出结束;在串S的第POS位置上(POS值自己设定)插入串T,并输出新串;计算新串的串长并输出 实验要点: 利用系统提供的库函数malloc(),realloc()作为串分配或重新分配存储空间,用free函数释放串值所占空间 实验五稀疏矩阵的转置 一实验目的: 了解稀疏矩阵的三元组顺序表的表示方式,掌握矩阵转置运算的操作方法 二实验内容 输入一个稀疏矩阵A,建立A的三元组顺序表,求A的转置矩阵B,请用两种转置法实现稀疏矩阵的转置,注意矩阵的建立、输出的实现 三实验要求 1编写源程序 2调试体会 实验六七二叉树的基本操作 【实验目的】 1.熟练掌握树的基本概念、二叉树的基本操作 2.重点掌握二叉树的生成、遍历及求深度等算法。 3.掌握运用递归方式描述算法及编写递归C程序的方法,提高算法分析和程序设计能力。 【实验题目】 一、二叉树的基本运算实验 【问题描述】 二叉树采用二叉链表作存储结构,试编程实现二叉树的如下基本操作: 1.按先序序列构造一棵二叉链表表示的二叉树T; 2.对这棵二叉树进行遍历: 先序、中序、后序以及层次遍历序列,分别输出结点的遍历序列; 3.求二叉树的深度/结点数目/叶结点数目; 4.将二叉树每个结点的左右子树交换位置。 【实验要求】 1编写源程序 2调试心得 二、赫夫曼树与赫夫曼编码 【问题描述】 利用Huffman编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。 但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接受端将传来的数据编码进行译码(复原)。 对于有些信道,每端都需要一个完整的编/译码系统。 试为这样的信息收发站编写一个Huffman的编/译码系统。 给定一组权值{7,9,5,6,10,1,13,15,4,8},构造一棵赫夫曼树,并计算带权路径长度WPL。 【算法描述】 1.初始化: 从键盘读入n个字符,以及它们的权值,建立Huffman树。 (具体算法可参见教材P147的算法6.12) 2.编码: 根据建立的Huffman树,求每个字符的Huffman编码。 对给定的待编码字符序列进行编码。 3.译码: 利用已经建立好的Huffman树,对上面的编码结果译码。 译码的过程是分解电文中的字符串,从根结点出发,按字符'0'和'1'确定找左孩子或右孩子,直至叶结点,便求得该子串相应的字符。 具体算法留给读者完成。 4.打印Huffman树。 【实验要求】 1编写源程序 2画出程序流程图 3调试心得 实验八图的建立和应用 【实验目的】 1.熟练掌握图的邻接矩阵和邻接表的存储方式; 2.实现图的一些基本运算,特别是深度遍历和广度遍历; 【实验题目】 建立一无向图的深度优先搜索生成树并输出得到的序列 【实验要求】 1用邻接表和邻接矩阵两种方法存储图 2编写源程序 3调试心得 实验九查找算法的实现 【实验目的】 1.熟练掌握各种静态查找表的查找方法(顺序查找法、折半查找法、索引顺序表查找); 2.熟练掌握二叉排序树的构造方法和查找算法; 3.掌握描述查找过程的判定树的构造方法,以及按照定义计算各种查找方法在等概率情况下查找成功时的平均查找长度; 4.了解二叉平衡树的建立和维护平衡的方法。 【实验题目】 静态查找表可以有不同的表示方法,在不同的表示方法中,实现查找操作的方法也不同。 对静态查找表可以用顺序表或线性链表进行表示,也可组织成有序的顺序表,或者是索引顺序表,相应的查找方法可采用顺序查找方法、折半查找方法和索引顺序查找的方法。 请用顺序查找方法设计一个有关静态查找表的建立、查找等基本操作的演示程序。 【实验要求】 1编写源程序 2调试心得 实验十内部排序算法的实现 【实验目的】 1、掌握各种排序算法的思想、方法和稳定性。 2、掌握快速排序、堆排序、归并排序算法的实现。 3、了解每一种排序算法的时间以及空间复杂度。 【实验题目】 任意给出一组关键字(关键字的个数和值在运行时由键盘输入),分别采用直接插入排序、希尔排序和快速排序算法对其进行排序,并输出每个排序算法得到的序列。 【实验要求】 1编写源程序 2调试心得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 工程 大学 数据结构 各章 作业 实验