数据结构试题详解:矿业大学考试重点

版权申诉
5星 · 超过95%的资源 8 下载量 11 浏览量 更新于2024-08-17 6 收藏 288KB PDF 举报
"中国矿业大学的数据结构试题及答案,包含了填空题和运算题,涵盖了数据结构的基础概念和操作,如数据结构的定义、队列与栈的操作、链表的插入时间复杂度、二叉树的性质、二叉搜索树的遍历、散列存储中的冲突解决等。" 在数据结构领域,这些试题涉及到的知识点丰富多样: 1. 数据结构不仅包含数据,还包括数据之间的关系,如当结点间存在M对N的关系时,这种结构称为M:N关系或多对多关系。 2. 队列是一种先进先出(FIFO)的数据结构,插入操作通常在队尾进行,删除操作则在队首执行。 3. 顺序存储的栈中,如果用top等于数组长度N表示栈空,栈满的条件是top等于0,这是因为栈顶指针top向下增长,当top回到数组起始位置时,栈已满。 4. 在单链表中,向表头插入元素通常需要遍历到表头,时间复杂度为O(n),而在表尾插入元素只需改变最后一个元素的指针,时间复杂度为O(1)。 5. 二叉树是度最多为2的树形结构。对于结点数为N的二叉树,所有结点度的总和是2(N-1),因为除了根节点外,每个结点都有两个子节点的可能性。 6. 二叉搜索树的中序遍历可以得到一个递增序列,而后序遍历二叉语法树可得到算术表达式的中缀表示。 7. 二叉链表存储的二叉树,如果有n个结点,将有2n个指针,其中n个用于指向孩子,n-1个指针为空闲,因为每个非叶节点有两个孩子指针,根节点没有父指针。 8. 完全二叉树的编号存储中,结点i的左孩子编号是2i,右孩子编号是2i+1,双亲元素编号是i/2(向下取整)。 9. 散列存储中,处理冲突的常见方法有开放地址法和链地址法,前者通过线性探测、二次探测等方法寻找下一个空槽,后者则是将冲突的元素链接在一起形成链表。 运算题部分涉及到具体的操作,例如: 1. 稀疏矩阵的三元组线性表表示可以简化存储非零元素,顺序存储则需要记录行、列索引和对应值。 2. 二叉搜索树的构造过程通过逐个输入数据构建,每个新输入的数会在已有树的合适位置插入,形成递增的左子树和递减的右子树。 3. 对于有向图的邻接表存储,便于按终点序号排序的边结点,便于遍历和查找。 这些试题旨在测试学生对数据结构基本概念、操作和应用的理解,以及实际问题的解决能力。解答这些问题需要对数据结构的理论知识有深入理解,并能灵活运用到具体问题中。
2019-09-21 上传
1.对于二叉排序树,下面的说法( )是正确的。 A.二叉排序树是动态树表,查找不成功时插入新结点时,会引起树的重新分裂和组合 B.对二叉排序树进行层序遍历可得到有序序列 C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大 D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/2 2.在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为( )。 A.O(n) B.O(log2n) C.O(n*log2n) D.O(n2) 3.静态查找与动态查找的根本区别在于( )。 A. 它们的逻辑结构不一样 B. 施加在其上的操作不同 C. 所包含的数据元素类型不一样 D. 存储实现不一样 4.已知一个有序表为{12,18,24,35,47,50,62,83,90,115,134},当折半查找值为90的元素时,经过( )次比较后查找成功。 A.2 B.3 C.4 D.5 5.已知数据序列为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为( )。 A. 4 B. 5 C. 6 D. 7 6.设散列表表长m=14,散列函数H(k)=k mod 11 。表中已有15,38,61,84四个元素,如果用线性探测法处理冲突,则元素49的存储地址是( )。 A. 8 B. 3 C. 5 D. 9 7. 平衡二叉树的查找效率呈( )数量级。 A. 常数阶 B. 线性阶 C. 对数阶 D. 平方阶 8. 设输入序列为{20,11,12,…},构造一棵平衡二叉树,当插入值为12的结点时发生了不平衡,则应该进行的平衡旋转是( )。 A. LL B. LR C. RL D. RR 二、填空题(每空3分,共24分)。 1.在有序表A[1..18]中,采用二分查找算法查找元素值等于A[7]的元素,所比较过的元素的下标依次为 。 2.利用逐点插入法建立序列(61,75,44,99,77,30,36,45)对应的二叉排序树以后,查找元素36要进行 次元素间的比较,查找序列为 。 3. 用顺序查找法在长度为n的线性表中进行查找,在等概率情况下,查找成功的平均比较次数是 。 4. 二分查找算法描述如下: intSearch_Bin(SST ST, KT key) { low=1 ; high=ST. length; while(low<=high) { mid=(low+high)/2; if(key==ST.elem[mid].key) return mid; else if(key<ST.elem[mid].key) ; else ; } return 0; } 5.链式二叉树的定义如下: typedef struct Btn{ TElemType data; ; }BTN ,*BT; 6.在有n个叶子结点的哈夫曼树中,总结点数是 。 三、综合题(共52分)。 1. (共12分)假定关键字输入序列为19,21,47,32,8,23,41,45,40,画出建立二叉平衡树的过程。 2. (共15分)有关键字{13,28,31,15,49,36,22,50,35,18,48,20},Hash 函数为H=key mod 13,冲突解决策略为链地址法,请构造Hash表(12分),并计算平均查找长度(3分)。 ASL= 3. (共10分)设关键字码序列{20,35,40,15,30,25},给出平衡二叉树的构造过程。 4. (共15分)设哈希表长为m=13,散列函数为H(k)=k mod 11,关键字序列为5,7,16,12,11,21,31,51,17,81;试求:散列后的表中关键字分布(假定解决冲突的方法为线性探测再散列法);求平均查找长度ASL;计算该表的装填因子。 (1)按要求求哈希表(10分): 0 1 2 3 4 5 6 7 8 9 10 11 12 (2)计算ASL(3分): ASL= (3)计算装填因子(2分):装填因子=