一起答

数据结构导论2017年10月真题及答案解析(02142)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 已知二叉链表的类型定义如下:

    typedef struct btnode

    { DataType data;

      struct btnode *lchild, *rchild;

    }*BinTree;

    假定vsit(bt)是一个已定义的过程,其功能是访问指针bt所指结点。设计递归算法preorder( BinTree bt)实现在二叉链表上的先序遍历。

  2. 给出一组关键字(20,29,11,74,35,3,8,56),写出冒泡排序前两趟的排序结果,并说明冒泡排序算法的稳定性如何?

  3. 设有一n阶方阵A,设计算法实现对该矩阵的转置。

  4. 设有向图的邻接表表示如题31图所示,请给出每个顶点的入度和出度。

  5. 已知散列表的地址空间为0~10,散列函数为H(key)= key mod11(mod表示求余运算),采用二次探测法解决冲突,试用键值序列20,38,16,27,5,23,56,29建立散列表,并计算出等概率情况下查找成功的平均查找长度。

  6. 直接插入排序的空间复杂度为_________。

  7. 已知一个7×6的稀疏矩阵如题29图所示,试写出该稀疏矩阵的三元组表示。

  8. 已知一棵二叉树如题30图所示,试求该二叉树的先序遍历序列、后序遍历序列和层次遍历序列。

  9. 作为一种数据结构,查找表的逻辑结构是_________。

  10. 对于具有n个元素的数据序列,采用二叉排序树查找,平均查找长度介于_________之间。

  11. Dijkstra算法的思想是按照最短路径长度_________的方法产生从一点到其他顶点的最短路径。

  12. 遍历图的基本方法有深度优先搜索和_________优先搜索两种。

  13. 在树形结构中,每一层结点只能和上一层中的至多一个结点相关,而在_________中,任意两个结点之间都可能相关。

  14. 若对一棵有n(n>0)个结点的完全二叉树从1开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为1的结点存储到A[1]中,其余类推。若i>2,则A[i]的双亲结点为_________。

  15. 用于描述分类过程的二叉树称为_________。

  16. 设顺序表A长度为100,若下标从1开始计数,则删除元素A[10]需要移动_________个元素。

  17. 循环队列的队头指针为front,队尾指针为rear,当_________时表明队列为空。

  18. 对于一棵包含n个结点的二叉树,用二叉链表存储时,其指针总数为_________个。

  19. 对于按位置查找运算,顺序表是随机存取,其时间复杂度为_________。

  20. 在估算算法空间复杂度时,一般只需要分析_________所占用的空间。

  21. 假设顺序表为(b1,b2,b3),查找b1,b2,b3的概率分别为0.2,0.2,0.6,则顺序查找法的平均查找长度为(  )

    • A.1
    • B.1.2
    • C.1.4
    • D.1.6
  22. 已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当用二分查找方法查找值为90的元素时,查找成功时,键值比较的次数为(  )

    • A.2
    • B.3
    • C.4
    • D.5
  23. 在插入排序方法中,类似图书馆中整理图书的过程的是(  )

    • A.希尔排序
    • B.表插入排序
    • C.折半插入排序
    • D.直接插入排序
  24. 一个具有n个顶点的无向完全图的边数为(  )

    • A.n2/2
    • B.n2
    • C.n(n-1)/2
    • D.n(n-1)
  25. 邻接表的存储方法结合了(  )

    • A.顺序存储与散列存储
    • B.顺序存储与链式存储
    • C.链式存储与索引存储
    • D.链式存储与散列存储
  26. 关于满二叉树和完全二叉树,下面叙述正确的是(  )

    • A.完全二叉树结点个数>满二叉树结点个数
    • B.满二叉树一定是完全二叉树
    • C.完全二叉树一定是满二叉树
    • D.含有n个结点的完全二叉树的深度为log2n
  27. 与二叉链表结构形式完全相同的是(  )

    • A.孩子链表
    • B.孩子兄弟链表
    • C.带双亲的孩子链表
    • D.双亲链表
  28. 关于树的概念,下面叙述正确的是(  )

    • A.树可以没有根结点
    • B.树中结点个数不为0
    • C.树中可以存在多个根节点
    • D.若树中存在多个子树,则子树之间可以相交
  29. 设两个数据元素类型一致的栈共享一维数组空间data[max]成为双栈,两个栈的栈底分别设在数组两端,这两个栈的栈顶变量分别为top1和top2,且top2≥top1,则下列会发生“上溢”情况的是(  )

    • A.top1+1=top2
    • B.top1=top2
    • C.top2+1-=top1
    • D.top1+top2=max
  30. 设有一循环队列SQ,现将数据x进行入队操作,语句为(  )

    • A.SQ. front=(SQ. front+1)%maxsize;
    • B.SQ. rear=(SQ. rear+1)%maxsize;
    • C.SQ. front=(SQ. front +1)%maxsize; SQ. data[SQ. front]=x;
    • D.SQ. rear=(SQ. rear+1)%maxsize; SQ. data[SQ.rear]=x;
  31. 关于栈和队列,下面叙述正确的是(  )

    • A.函数的嵌套调用用队列来实现
    • B.操作系统中进程调用用栈来实现
    • C.程序递归的处理用队列来实现
    • D.栈和队列是运算受限的线性表
  32. 在双向循环链表中,设p指向待删结点,删除*p的正确语句为(  )

    • A.p->prior->next=p->next; p->next->prior=p->prior; free(p);
    • B.p->next= p->prior->next; p->prior= p->next->prior; free(p);
    • C.p->prior->next=p->next; p->next->prior=-p->prior;
    • D.p->next=p->prior->next; p->prior= p->next->prior;
  33. 假设顺序表的长度为n,则在第i(1≤i≤n+1)个元素之前插入一个新元素x所需移动元素的个数为(  )

    • A.i
    • B.n-i
    • C.n-i+1
    • D.n
  34. 与数据元素本身的形式、内容、相对位置、个数无关的是数据的(  )

    • A.存储结构
    • B.逻辑结构
    • C.类型
    • D.运算实现
  35. 时间复杂度的阶数中,O(n)表示(  )

    • A.常数阶
    • B.线性阶
    • C.多项式阶
    • D.指数阶