为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据结构基础-南理工泰州科技学院

2019-03-15 12页 doc 31KB 129阅读

用户头像

is_589748

暂无简介

举报
数据结构基础-南理工泰州科技学院习题一 绪论 1  简要回答术语:数据,数据元素,数据结构,数据类型。 2  数据的逻辑结构?数据的物理结构?逻辑结构与物理结构的区别和联系是什么? 3  数据结构的主要运算包括哪些? 4  算法分析的目的是什么?算法分析的主要方面是什么? 5  分析以下程序段的时间复杂度,请说明分析的理由或原因。 ⑴ Sum1( int n ) {  int p=1, sum=0, m ; for (m=1; m<=n; m++) { p*=m ; sum+=p ;  } return (sum) ; } ⑵ Sum2( int n ...
数据结构基础-南理工泰州科技学院
习题一 绪论 1  简要回答术语:数据,数据元素,数据结构,数据类型。 2  数据的逻辑结构?数据的物理结构?逻辑结构与物理结构的区别和联系是什么? 3  数据结构的主要运算包括哪些? 4  算法的目的是什么?算法分析的主要方面是什么? 5  分析以下程序段的时间复杂度,请说明分析的理由或原因。 ⑴ Sum1( int n ) {  int p=1, sum=0, m ; for (m=1; m<=n; m++) { p*=m ; sum+=p ;  } return (sum) ; } ⑵ Sum2( int n ) {  int sum=0, m, t ; for (m=1; m<=n; m++) {  p=1 ; for (t=1; t<=m; t++) p*=t ; sum+=p ; } return (sum) ; } ⑶ 递归函数 fact( int n ) {  if (n<=1)  return(1) ; else return( n*fact(n-1)) ; } 习题二 线性表 1  简述下列术语:线性表,顺序表,链表。 2  何时选用顺序表,何时选用链表作为线性表的存储结构合适?各自的主要优缺点是什么? 3  在顺序表中插入和删除一个结点平均需要移动多少个结点?具体的移动次数取决于哪两个因素? 4  链表所表示的元素是否有序?如有序,则有序性体现于何处?链表所表示的元素是否一定要在物理上是相邻的?有序表的有序性又如何理解? 5  设顺序表L是递增有序表,试写一算法,将x插入到L中并使L仍是递增有序表。 5  写一求单链表的结点数目ListLength(L)的算法。 6  写一算法将单链表中值重复的结点删除,使所得的结果链表中所有结点的值均不相同。 7  设线性表中的元素按值递增有序,以带头结点head的单链表作存储结构,写一算法删除表中大于等于min且小于等于max的元素(若表中存在这样的元素),同时释放被删结点的空间。 8  写一算法将带有头结点head的单链表逆置。 9  写一算法从一给定的向量A删除值在x到y(x≤y)之间的所有元素(注意:x和y是给定的参数,可以和表中的元素相同,也可以不同)。 10  设A和B是两个按元素值递增有序的单链表,写一算法将A和B归并为按按元素值递减有序的单链表C,试分析算法的时间复杂度。 习题三 栈和队列 1  设有一个栈,元素进栈的次序为a, b, c。问经过栈操作后可以得到哪些输出序列? 2  循环队列的优点是什么?如何判断它的空和满? 3  设有一个静态顺序队列,向量大小为MAX,判断队列为空的条件是什么?队列满的条件是什么? 4  设有一个静态循环队列,向量大小为MAX,判断队列为空的条件是什么?队列满的条件是什么? 5  利用栈的基本操作,写一个返回栈S中结点个数的算法int StackSize(SeqStack S) ,并说明S为何不作为指针参数的算法? 6  一个双向栈S是在同一向量空间内实现的两个栈,它们的栈底分别设在向量空间的两端。试为此双向栈设计初始化InitStack(S) ,入栈Push(S,i,x),出栈Pop(S,i,x)算法,其中i为0或1 ,用以表示栈号。 7  设Q[0,6]是一个静态顺序队列,初始状态为front=rear=0,请画出做完下列操作后队列的头尾指针的状态变化情况,若不能入队,请指出其元素,并说明理由。 a, b, c, d入队 a, b, c出队 i , j , k , l , m入队 d, i出队 n, o, p, q, r入队 8 假设Q[0,5]是一个循环队列,初始状态为front=rear=0,请画出做完下列操作后队列的头尾指针的状态变化情况,若不能入队,请指出其元素,并说明理由。 d, e, b, g, h入队 d, e出队 i , j , k , l , m入队 b出队 n, o, p, q, r入队 习题六 树和二叉树 ⑴  假设在树中, 结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树的树边集合为 { (e,i), (b,e), (b,d), (a,b), (g,j), (c,g), (c,f), (h,l), (c,h), (a,c) } ,用树型表示法表示该树,并回答下列问题: ① 哪个是根结点? 哪些是叶子结点? 哪个是g的双亲? 哪些是g的祖先? 哪些是g的孩子? 那些是e的子孙? 哪些是e的兄弟? 哪些是f的兄弟? ② b和n的层次各是多少? 树的深度是多少? 以结点c为根的子树的深度是多少? ⑵  一棵深度为h的满k叉树有如下性质: 第h层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。 如果按层次顺序(同层自左至右)从1开始对全部结点编号,问: ① 各层的结点数是多少? ② 编号为i的结点的双亲结点(若存在)的编号是多少? ③ 编号为i的结点的第j个孩子结点(若存在)的编号是多少? ④ 编号为i的结点的有右兄弟的条件是什么? 其右兄弟的编号是多少? ⑶ 设有如图6-27所示的二叉树。 ① 分别用顺序存储方法和链接存储方法画出该二叉树的存储结构。 ② 写出该二叉树的先序、中序、后序遍历序列。 ⑷ 已知一棵二叉树的先序遍历序列和中序遍历序列分别为ABDGHCEFI和GDHBAECIF,请画出这棵二叉树,然后给出该树的后序遍历序列。 ⑸ 设一棵二叉树的中序遍历序列和后序遍历序列分别为BDCEAFHG和DECBHGFA ,请画出这棵二叉树,然后给出该树的先序序列。 ⑹ 已知一棵二叉树的中序遍历序列和后序遍历序列分别为dgbaekchif和gdbkeihfca,请画出这棵二叉树对应的中序线索树和后序线索树。 ⑺ 以二叉链表为存储结构,请分别写出求二叉树的结点总数及叶子结点总数的算法。 ⑻ 设图6-27所示的二叉树是森林F所对应的二叉树,请画出森林F。 ⑼ 设有一棵树,如图6-28所示。 ① 请分别用双亲表示法、孩子表示法、孩子兄弟表示法给出该树的存储结构。 ② 请给出该树的先序遍历序列和后序遍历序列。 ③ 请将这棵树转换成二叉树。 ⑽ 设给定权值集合w={3,5,7,8,11,12} ,请构造关于w的一棵huffman树,并求其加权路径长度WPL 。 ⑾ 假设用于通信的电文是由字符集{a, b, c, d, e, f, g, h}中的字符构成, 这8个字符在电文中出现的概率分别为{0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10} 。 ① 请画出对应的huffman树(按左子树根结点的权小于等于右子树根结点的权的次序构造)。 ② 求出每个字符的huffman编码。 习题七 图 ⑴  分析并回答下列问题: ① 图中顶点的度之和与边数之和的关系? ② 有向图中顶点的入度之和与出度之和的关系? ③ 具有n个顶点的无向图,至少应有多少条边才能确保是一个连通图? 若采用邻接矩阵表示,则该矩阵的大小是多少? ④  具有n个顶点的有向图,至少应有多少条弧才能确保是强连通图的? 为什么? ⑵  设一有向图G=(V,E),其中V={a,b,c,d,e} , E={, , , , , ,, , } ① 请画出该有向图,并求各顶点的入度和出度。 ② 分别画出有向图的正邻接链表和逆邻接链表。 ⑶  对图7-27所示的带权无向图。 ① 写出相应的邻接矩阵表示。 ② 写出相应的边表表示。 ③ 求出各顶点的度。 ⑷  已知有向图的逆邻接链表如图7-28所示。 ① 画出该有向图。 ② 写出相应的邻接矩阵表示。 ③ 写出从顶点a开始的深度优先和广度优先遍历序列。 ④ 画出从顶点a开始的深度优先和广度优先生成树。 ⑸ 一个带权连通图的最小生成树是否唯一?在什么情况下可能不唯一? ⑹ 对于图7-27所示的带权无向图。 ① 按照Prime算法给出从顶点2开始构造最小生成树的过程。 ② 按照Kruskal算法给出最小生成树的过程。 ⑺ 已知带权有向图如图7-29所示,请利用Dijkstra算法从顶点V4出发到其余顶点的最短路径及长度,给出相应的求解步骤。 ⑻ 已知带权有向图如图7-30所示,请利用Floyd算法求出每对顶点之间的最短路径及路径长度。 ⑼ 一个AOV网用邻接矩阵表示,如图7-31。用拓扑排序求该AOV网的一个拓扑序列,给出相应的步骤。 ⑽ 拓扑排序的结果不是唯一的,请给出如图7-32所示的有向图的所有可能的拓扑序列。 ⑾ 请在深度优先搜索算法的基础上设计一个对有向无环图进行拓扑排序的算法。 ⑿ 设计一个算法利用图的遍历方法输出一个无向图G中从顶点Vi到Vj的长度为S的简单路径,设图采用邻接链表作为存储结构。 ⒀ 假设一个的进度用AOE网表示,如图7-33所示。 ① 求出每个事件的最早发生时间和最晚发生时间。 ② 该工程完工至少需要多少时间? ③ 求出所有关键路径和关键活动。 习题九 查找 ⑴  对于一个有n个元素的线性表,若采用顺序查找方法时的平均查找长度是什么?若结点是有序的,则采用折半查找法是的平均查找长度是什么? ⑵ 设查找表采用单链表存储,请分别写出对该表进行顺序查找的静态查找和动态查找的算法。 ⑶ 设二叉排序树中的关键字互不相同:则 ① 最小元素无左孩子,最大元素无右孩子,此命题是否正确? ② 最大和最小元素一定是叶子结点吗? ③ 一个新结点总是插入在叶子结点上吗? ⑷ 试比较哈希表构造时几种冲突处理方法的优点和缺点。 ⑸ 将关键字序列(10, 2, 26, 4, 18, 24, 21, 15, 8, 23, 5, 12, 14)依次插入到初态为空的二叉排序树中,请画出所得到的树T; 然后画出删除10之后的二叉排序树T1 ; 若再将10插入到T1中得到的二叉排序树T2是否与T1相同? 请给出T2的先序、中序和后序序列。
/
本文档为【数据结构基础-南理工泰州科技学院】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索