美文网首页
数据结构试题库,含答案

数据结构试题库,含答案

作者: cdhqyj | 来源:发表于2019-03-07 15:58 被阅读0次

    学习IT技术最多的就是练习题了,让理论与实践相结合,这样学习才是有效的,下面是华清的美女学霸,在一次次测试中,总结的常见的数据结构题,都是比较常见的哦,可以收藏来学习。

    1. 选择题(共二十题,1~10题每题2分, 11~20题每题3分)

    1. 数据结构通常研究数据的( )及运算。

    A. 物理结构和逻辑结构 B. 存储和抽象 C. 理想和抽象 D. 理想与逻辑

    2. 数据结构中,在逻辑上可以把数据结构分成( )。

    A. 动态结构和静态结构B. 紧凑结构和非紧凑结构

    D. 内部结构和外部结构

    C. 线性结构和非线性结构

    3. 若f(n)=3n2+2n+1, 则f(n)= ()。

    B. O(n)C. O(2n)D. O(3n2)

    A. O(n2)

    4. 用单链表存储的线性表,存储的每个节点需要两个域,一个是数据域,另一个是(

    )。

    A. 当前节点的所在地址B. 后继节点的所在地址

    C. 空指针域D. 空闲域

    5. 设线性链表中节点的结构为(data, next),已知指针q所指节点是指针节点p的直接前驱,若在*q与*p之间插入节点*s,则应执行()操作。

    A. s->next=p->next;p->next=s;

    B. q->next=s; s->next=p;

    C. p->next=s->next;s->next=p;

    6. 设线性链表中的节点的结构为(data, next),已知指针p所指的节点不是尾节点,若在*p之后插入节点*s,则应该执行()操作。

    A. s->next=p; p->next=s;

    B. s->next=p->next;p->next=s;

    C. s->next=p->next;p=s;

    7. 设线性链表中的节点的结构为(data, next),若想删除节点p的直接后继,则应该执行()操作。

    A. p->next=p->next->next;

    B. p=p->next; p->next=p->next->next; C. p->next=p->next;

    D. p=p->next->next;

    8. p指向线性链表中的某一节点,则在线性链表的表尾插入节点s的语句序列是()。

    A. while(p->next!=NULL) p=p->next;p->next=s;s->next=NULL;

    B. while(p!=NULL) p=p->next;p->next=s;s->next=NULL;

    C. while(p->next!=NULL) p=p->next;s->next=p;p->next=NULL;

    D. while(p!=NULL) p=p->next->next;p->next=s;s->next=p->next;

    9. 一个栈的入栈序列为a,b,c,d,e,则出栈序列不可能的是()。

    10. 如果以链表作为栈的存储结构,则出栈操作时()。

    11. 如果以链表作为栈的存储结构,则入栈操作时()。

    12. 在队列中存取数据的原则是()

    A. 先进先出 B. 后进先出 C. 先进后出 D. 随意进出

    13. 栈和队列的共同点是()

    14. 判断一个队列sp为空的条件是()。

    A. sp->front==sp->rear B. sp->front==sp->rear+1 C. sp->front==sp->rear-1 D. sp->front==NULL

    15. 将含100个节点的完全二叉树从根这一层开始,每层上从左到右依次对节点编号,根节点的编号为1.编号为49的节点x的右孩子编号为()。

    16. 先访问节点的左子树,然后访问该节点,最后访问节点的右子树,这种遍历称为(

    )。

    A. 中序遍历 B. 后序遍历 C. 先序遍历 D. 层次遍历

    17. 一个具有767个节点的完全二叉树,其叶子节点个数为()。

    18. 深度为 k 的完全二叉树中,最少有多少个结点()

    A 2k-1-1B 2k-1C 2k-1+1D 2k-1

    19. 对于二叉树的遍历算法,下面描述正确的是()

    A void pre_order(bitree* root){//先序 printf("%d ",root->data);

    pre_order(root->lchild);

    pre_order(root->rchild);}

    B void in_order(bitree* root){//中序 in_order(root->lchild);

    in_order(root->rchild);

    printf("%d ",root->data);}

    C void post_order(bitree* root){//后序 post_order(root->lchild);

    printf("%d ",root->data);

    post_order(root->rchild);}

    D void in_order(bitree* root){//中序 printf("%d ",root->data);

    in_order(root->lchild);

    in_order(root->rchild);}

    20. 设指针变量 p 指向单链表中节点 A,若删除单链表中的节点 A,则需要修改指针的操作顺序为 ( )

    A q= p->next; p->data = q->data;p->next = q ->next;free(q);

    B q = p->next ;q->data = p->data;p->next = q->next;free(q);

    C q = p->next;p->next = q->next;free(q);

    D q = p->next;p->data = q->data;free(q);

    2. 简答题(共3题,21题10分,22~23题各20分,编程题可忽略头文件)

    21. 代码实现一个单链表的建立,头部插入,头部删除。

    22. 代码实现一棵12个节点的完全二叉树

    (1)递归实现节点的创建初始化。

    (2)递归方法实现树的后序遍历。

    (3)用顺序队列方法实现层次遍历。

    23. 代码实现顺序循环队列的创建,入队,出队,测长,判空,判满,打印功能。

    相关文章

      网友评论

          本文标题:数据结构试题库,含答案

          本文链接:https://www.haomeiwen.com/subject/uyacpqtx.html