数据结构课件-第9章

数据结构第二章习题课

1、试描述头指针、头结点、开始结点的区别、并说明头指针和头结点的作用。 答:开始结点是指链表中的第一个结点,也就是没有直接前趋的那个结点。 链表的头指针是一指向链表开始结点的指针(没有头结点时),单链表由头指针唯一确定,因此单链表可以用头指针的名字来命名。 头结点是我们人为地在链表的开始结点之前附加的一个结点。有了头结点之后,头指针指向头结点,不论链表否为空,头指针总是非空。而且头指针的设置使得对链表的第一个位置上的操作与在表其他位置上的操作一致(都是在某一结点之后)。 2、何时选用顺序表、何时选用链表作为线性表的存储结构为宜? 答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑: 1) 基于空间的考虑。当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。 2) 基于时间的考虑。若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等操作时,宜采用链表做存储结构。并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。 3、在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素? 答:在等概率情况下,顺序表中插入一个结点需平均移动n/2个结点,删除一个结点需平均移动(n-1)/2个结点。具体的移动次数取决于顺序表的长度n以及需插入或删除的位置i。i 越接近n则所需移动的结点数越少。 4、为什么在单循环链表中设置尾指针比设置头指针更好? 答:尾指针是指向终端结点的指针,用它来表示单循环链表可以使得查找链表的开始结点和终端结点都很方便,设一带头结点的单循环链表,其尾指针为rear,则开始结点和终端结点的位置分别是rear->next->next 和rear, 查找时间都是O(1)。 若用头指针来表示该链表,则查找终端结点的时间为O(n)。 5、在单链表、双链表和单循环链表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少? 答:我们分别讨论三种链表的情况。 1) 单链表。当我们知道指针p指向某结点时,能够根据该指针找到其直接后继,但是由于不知道其头指针,所以无法访问到p指针指向的结点的直接前趋。因此无法删去该结点。 2) 双链表。由于这样的链表提供双向链接,因此根据已知结点可以查找到其直接前趋和直接后继,从而可以删除该结点。其时间复杂度为O(1)。 3) 单循环链表。根据已知结点位置,我们可以直接得到其后相邻的结点位置(直接后继),又因为是循环链表,所以我们可以通过查找,得到p结点的直接前趋。因此可以删去p所指结点。其时间复杂度应为O(n)。

北交数据结构 -徐薇 -第九章作业

9.9 解:(1) 二叉排序树 查找成功的平均长度:[]5.361524333221112 1 ASL =?+?+?+?+?+?= (2) 排序后:Apr,Aug,Dec,Feb,Jan,July,June,Mar,May,Nov,Oct,Sep 1 2 3 4 5 6 7 8 9 10 11 12 二叉排序树: 查找成功的平均长度:[]12/375443221112 1 =?+?+?+?= ASL July Dec May Apr Feb June Aug Oct Mar Sep Jan Nov

平衡二叉排序树 查找成功的平均长度:[]12/375443221112 1 =?+?+?+?= ASL 9.14 试从空树开始,画出按以下次序向2-3树即3阶B-树中插入关键码的建树过程:20、30、50、52、60、68、70,如果此后删除50和68,画出每一步执行后2-3树的状态。 Mar Jan Oct Aug Jun May Apr Sept July Feb Nov

9.19 选取哈希函数H(k)=(3k) MOD 11。用开放定址法处理冲突,di=i ((7k) MOD 10 +1) (i=1,2,3…)。试在0—10的散列地址空间中对关键字序列(22、41、53、46、30、13、01、67)构造哈希表,并求等概率情况下查找成功时的平均查找长度。 0 1 2 3 4 5 6 7 8 9 10 22 67 41 30 53 46 13 01 1 3 1 1 1 1 2 6 ASL 成功:[]8/1763224181 =++?+?= ASL ASL 不成功:[]8/176322418 1 =++?+?=ASL 9.20 试为下列关键字建立一个装载因子不小于0.75的哈希表,并计算你所构造的哈希表的平均查找长度。(ZHAO 、QIAN 、SUN 、LI 、ZHOU 、WU 、ZHANG 、WANG 、CHANG 、CHAO 、YANG 、JIN )

数据结构习题汇编09第九章排序试题

数据结构课程(本科)第九章试题 下列算法中( )算法不具有这样的特 性: 对某些输入序列,可能不需要移动数据对象即可完成 排序。 A. 起泡排序 B. 希尔排序 C. 快速排序 D. 直接选择排序 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 单项选择题 若待排序对象序列在排序前已按其排序码递增顺序排列,则采用( A. 直接插入排序 B. 快速排序 C. 归并排序 D. 直接选择排序 如果只想得到 1024 个元素组成的序列中的前 5 个最小元素,那么用( A. 起泡排序 B. 快速排序 C. 直接选择排序 D. 堆排序 )方法比较次数最少。 )方法最快。 对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作, 直到子序列为空或只剩一个元素为止。这样的排序方法是( )。 A. 直接选择排序 B. 直接插入排序 C. 快速排序 D. 起泡排序 对 5 个不同的数据元素进行直接插入排序,最多需要进行( A. 8 B. 10 )次比较? C. 15 D. 25 如果输入序列是已经排好顺序的,则下列算法中( )算法最快结束? A. 起泡排序 B. 直接插入排序 C. 直接选择排序 D. 快速排序 如果输入序列是已经排好顺序的,则下列算法中( )算法最慢结束? A. 起泡排序 B. 直接插入排序 C. 直接选择排序 D. 快速排序 下列排序算法中( )算法是不稳定的。 A. 起泡排序 B. 直接插入排序 C. 基数排序 D. 快速排序 假设某文件经过内部排序得到 100 个初始归并段, 那么如果要求利用多路平衡归并在 3 趟内完成排序, 则应取的归并路数至少是( )。 A. 3 B. 4 C. 5 D. 6 采用任何基于排序码比较的算法,对 5 个互异的整数进行排序,至少需要( )次比较。 A. 5 B. 6 C. 7 D. 8

数据结构第九章习题课课案

1.用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B. 必然慢 C. 相等 D. 不能确定 2.具有12个关键字的有序表,折半查找的平均查找长度() A. 3.1 B. 4 C. 2.5 D. 5 3.如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。 A. 分块查找 B. 顺序查找 C. 折半查找 D. 基于属性4.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) A.(100,80,90,60,120,110,130) B.(100,120,110,130,80,60,90) C.(100,60,80,90,120,110,130) D. (100,80,60,90,120,130,110) 5. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。 A. LL B. LR C. RL D. RR 7. 下面关于B和B+树的叙述中,不正确的是( ) A. B树和B+树都是平衡的多叉树。 B. B树和B+树都可用于文 件的索引结构。 C. B树和B+树都能有效地支持顺序检索。 D. B树和B+树都能有效地 支持随机检索。 8. m阶B-树是一棵( ) A. m叉排序树 B. m叉平衡排序树 C. m-1叉平衡排序树 D. m+1叉平衡排序树 9. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有()个记录。 A.1 B. 2 C. 3 D. 4 10.下面关于哈希(Hash,杂凑)查找的说法正确的是( ) A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小 B.除留余数法是所有哈希函数中最好的 C.不存在特别好与坏的哈希函数,要视情况而定 D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可

《数据结构》 第二章 线性表习题

《数据结构》 第二章线性表习题 一、单项选择题 1. 线性表是________。 A.一个有限序列,可以为空B.一个有限序列,不可以为空 C.一个无限序列,可以为空D.一个无限序列,不可以为空 2. 在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。 A.n-i B.n-i+l C.n-i-1 D.i 3. 线性表采用链式存储时,其地址________。 A.必须是连续的B.一定是不连续的 C.部分地址必须是连续的D.连续与否均可以 4. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。 A.n/2 B.n C.(n+1)/2 D.(n-1)/2 5. 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。 A. p->next=s; s->prior=p; p->next->prior=s; s->next=p->next; B. s->prior=p; s->next=p->next; p->next=s; p->next->prior=s; C. p->next=s; p->next->prior=s; s->prior=p; s->next=p->next; D. s->prior=p; s->next=p->next; p->next->prior=s; p->next=s; 6. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为________。A.p->next=p->next->next; B.p=p->next; C.p=p->next->next; D.p->next=p; 7. 在一个长度为n的顺序表中向第i个元素(0< inext=p->next; p->next=s B.q->next=s; s->next=p C.p->next=s->next; s->next=p D.p->next=s; s->next=q 9. 以下关于线性表的说法不正确的是______。 A.线性表中的数据元素可以是数字、字符、记录等不同类型。 B.线性表中包含的数据元素个数不是任意的。 C.线性表中的每个结点都有且只有一个直接前趋和直接后继。 D.存在这样的线性表:表中各结点都没有直接前趋和直接后继。 10. 线性表的顺序存储结构是一种_______的存储结构。

《数据结构》习题汇编07第七章图试题课件.doc

第七章图试题 一、单项选择题 1. 在无向图中定义顶点的度为与它相关联的()的数目。 A. 顶点 B. 边 C. 权 D. 权值 2. 在无向图中定义顶点v i 与v j 之间的路径为从v i 到达v j 的一个()。 A. 顶点序列 B. 边序列 C. 权值总和 D. 边的条数 3. 图的简单路径是指()不重复的路径。 A. 权值 B. 顶点 C. 边 D. 边与顶点均 4. 设无向图的顶点个数为n,则该图最多有()条边。 A. n-1 B. n(n-1)/2 C. n(n+1)/2 D. n(n-1) 5. n 个顶点的连通图至少有()条边。 A. n-1 B. n C. n+1 D. 0 6. 在一个无向图中,所有顶点的度数之和等于所有边数的( ) 倍。 A. 3 B. 2 C. 1 D. 1/2 7. 若采用邻接矩阵法存储一个n 个顶点的无向图,则该邻接矩阵是一个( ) 。 A. 上三角矩阵 B. 稀疏矩阵 C. 对角矩阵 D. 对称矩阵 8. 图的深度优先搜索类似于树的()次序遍历。 A. 先根 B. 中根 C. 后根 D. 层次 9. 图的广度优先搜索类似于树的()次序遍历。 A. 先根 B. 中根 C. 后根 D. 层次 10. 在用Kruskal 算法求解带权连通图的最小(代价)生成树时,通常采用一个()辅助结构, 判断一条边的两个端点是否在同一个连通分量上。 A. 位向量 B. 堆 C. 并查集 D. 生成树顶点集合 11. 在用Kruskal 算法求解带权连通图的最小(代价)生成树时,选择权值最小的边的原则是该边不能 在图中构成()。 A. 重边 B. 有向环 C. 回路 D. 权值重复的边 12. 在用Dijkstra 算法求解带权有向图的最短路径问题时,要求图中每条边所带的权值必须是 ()。 A. 非零 B. 非整 C. 非负 D. 非正 13. 在一个连通图中进行深度优先搜索得到一棵深度优先生成树,树根结点是关节点的充要条件是它至少 有()子女。

相关文档
最新文档