• 数据结构笔试题三


    〖微笑天使收集整理QQ:84024257〗

    一、选择题(每小题2分,共8分)

    1. 若需要利用形参直接访问实参,则应把形参变量说明为( )参数。

    A. 指针 B. 引用
    C. 值 

    2. 在一个单链表HL中,若要在指针q所至结点的后面插入一个由指针p所指向的结点,则执行()。

    A. q->next=p->next; p->next=q;
    B. p->next=q->next; q=p;
    C. q->next=p->next; p->next=q;
    D. p->next=q->next; q->next=p;

    3. 在一个顺序队列中,队首指针指向对首元素的()位置。

    A. 后一个 B. 前一个
    C. 当前

    4.向二叉搜索树中插入一个元素时,其时间复杂度大致为( )。

    A. O(long2n) B. O(n)
    C. O(1) D. O(nlong2n) 

    二.、填空题(每空1分,共同社2分)

    1. 数据的存储结构被分为_______________,________________,_______________和______________四种。

    2. 对于一个顺序存储的线性表,在表头插入元素的时间复杂度为______________, 在表尾插入元素的时间复杂

    度为_______________。

    3. 在稀疏矩阵所对应的三远组线性表中,每个三元组元素按______________为主序,_______________为辅序

    的次序排列。

    4. 在广义表的存储结构中,单元表结点与表元素结点有一个域对应不同,各自分别为_______________域和_______________域。

    5. 中级表达式3+x*(2.4/5-6)所对应的后缀表达式为_________________。

    6. 在一棵高度为h的3叉树中,最多含有_______________结点。

    7. 假定一棵二叉树的结点数为18,则它的最小深度为_______,最大深度为______。

    8. 在一课二叉树搜索中,每个分支结点的左子树上所有的结点的值一定______该结点的值,右子树上所有的结

    点的值一定_____该结点的值。

    9. 当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层______调整,知道被调整到______位置为止。 

    10. 表示图的三种存储结构为________________,_________________和_________________。

    11. 对用邻接矩阵表示的具有n个定点和e条边的图进行任一种遍历时,其时间复杂度为__________,对用邻接

    表表示的图进行任一种遍历时,其时间复杂度为______________。

    12. 从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56元素时,其查找长度分别为______和______。

    13. 假定对长度n=144的线性表进行索引查找,并假定每个子表的长度均为 ,则进行索引查找的平均查找长度

    为_______,时间复杂度为________________。

    14. 一棵B_树中的所有叶子结点均处在_______________上。

    15. 每次从无序表中顺序取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做______排序;每

    次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做______排序。

    16. 快速排序在平均情况下的时间复杂度为________________,在最环情况下的时间复杂度为

    ______________。

    三.、运算题(每小题6分,共24分)

    1. 假定一棵普通树的广义表表示a(b(e),c(f(h,i),g),d),分别写出先根、后根、按层遍历的结果。

    先根:

    后根:

    按层:

    2. 已知一个带全图的定点集V和边集G分别为:

    V={0,1,2,3,4,5,6,7};

    E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13(3,5)9};

    则求出该图的最小生成树的权。

    最小生成树的泉:

    3. 对于线性表(18,25,63,50,41,32,90,66)进行三列存储时,若选用H(K)=K%11作为散列函数,则散

    列地址为0的元素有______个,散列地址为3的元素有______个,散列地址为8的元素有______个。

    4. 假定一组纪录的排序码为(46,79,56,38,40,80,25,34),在对其进行快速排序的过程中,进行第

    一次划分后得到的排序码序列为。

    四、阅读算法,回答问题(每小题8分,共16分)

    1. Void AD(LNode*&HL)
    {
    Insert(HL,30);
    Insert(HL,50);
    Delete(HL,26);
    Delete(HL,55);
    }

    假定调用该算法时以HL为表头指针的单链表中的内容为(15,26,48,55),则调用返回后该单链表中的内容变为:

    __________________________________________。

    2. Void AI(adjmatrixGA,int I,int n)
    {
    cout<<I<<'''''''''''''''';
    visited[I]=true;
    for(int j=0;j<n;j++)
    if (Ga[I][j]! =0&&[I][j]! =MaxValue&&!visited[j])
    AI(GA,J,n);
    }

    该算法的功能为:

    ________________________________________________________________________。

    五、算法填空,在画有横线的地方填写合适的内容

    此为以BST为树根指针的二叉搜索树上插入值为litem的结点的递归算法。
    Void Insert(BtreeNode*&BST,const ElemType&item)
    {
    if(BST==NULL)
    { BtreeNode*p=newBTreeNode;
    p->data=item;

    _________________________________________________________;
    BST=p;
    }
    else if(item<BST->data)____________________________________;
    else_________________________________________;
    }

    六. 编写算法(10分)

    编写向类型为List的线性表L中第I个元素为值插入一个元素的算法,假定不需要对I的值进行有效性检查,同时不需要检查存储空间是否用完。
    Void Insert(List&L,int I,ElemType x)

    〖微笑天使收集整理QQ:84024257〗

    答案:一、 单选题

    1、B.2、D.3、B.4、A

    二、 填空

    1、 顺序结构、链接结构、索引结构、散列结构(次序无先后)
    2、 O(n)、O(1)
    3、 行号、列号
    4、 值(或data)、子表指针(或sublist)
    5、 3x2.45/6-*+
    6、 (3h-1)/2
    7、 5 18
    8、 小于 大于
    9、 向上 堆顶
    10、邻接矩阵 邻接表 边集数组(次序无先后)
    11、O(n2) O(e)
    12、1 3
    13、13 O( )
    14、同一层
    15、插入 选择
    16、O(nlog2n) O(n2)
    三、 运算题
    1、 先根:a,b,e,c,f,h,I,g,d;
    后根:e,b,h,I,f,g,c,d,a;
    按层:a,b,c,d,e,f,g,h,I;
    2、 最小生成树的权:34
    3、 1 1 2 每个数据占2分
    4、 (40 ,34 ,25,38,46,80,56,79)
    四、 阅读算法,回答问题。
    1、(15,30,48,50)
    2、从初始点Vi出发深度优先搜索遍历由邻接矩阵GA所表示的图。
    五、 算法填空,在画有横线的地方填写合适的内容。
    p->left=p->right=null
    insert(bst->left,item)
    insert(bst->right,item)
    六、 编写算法
    void insert(list&L,int I ,elemtype x)
    {
    for(int j=L.size-1; j>=I-1; j--)
    L.list[j+1]=L.list[j];
    L.list[I-1]=x;
    L.lize++;
    }

  • 相关阅读:
    剑指offer23-二叉搜索树的后序遍历序列
    剑指offer24-二叉树中和为某一值的路径
    剑指offer-复杂链表的复制
    剑指offer-二叉搜索树与双向链表
    剑指offer-字符串的排序
    剑指offer-数组中出现次数超过一半的数字
    剑指offer-最小的k个数
    c++中参数加&与不加的区别
    第九届蓝桥杯(A组填空题)
    基于优先级的多道程序系统作业调度——基于优先级
  • 原文地址:https://www.cnblogs.com/kb342/p/3749347.html
Copyright © 2020-2023  润新知