参考答案和解析
答案:A
更多“链式栈的栈顶在链表的()位置。 ”相关问题
  • 第1题:

    若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。

    A.采用不含头结点的单链表且栈顶元素放在表尾结点
    B.采用不含头结点的单链表且栈顶元素放在表头结点
    C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点
    D.采用含头结点的双向链表且栈顶元素放在表尾结点

    答案:B
    解析:
    本题考查数据结构基础知识。
    栈的操作要求是后进先出,而且仅在表尾一端加入和删除元素。对单链表进行操作时,必须从头指针出发。根据栈的操作要求,单循环链表和双向链表都是没有必要的,而且选项c中将栈顶元素任意存放是错误的。
    可以采用单链表作为栈的存储结构,将表头作为栈顶来使用。
    含头结点的单链表如下图所示,其中La为头指针,La指向的结点为头结点。

    不含头结点且栈顶元素放在表尾结点的单链表如下图所示,其中La为头指针,La指向的结点存储了先进入栈且没有出栈的元素。显然,因为要从La出发遍历至表尾才能进行入栈和出栈操作,在这种情况下出栈和入栈都是最低效的,时间复杂度都是O(n)。

    如果采用不含头结点且栈顶元素放在表头的单链表,如下图所示,出栈和入栈操作都在表头,时间复杂度都为O(1)。

  • 第2题:

    1、下列叙述正确的是?

    A.有两个指针域的链表称为二叉链表

    B.队列可以用链式存储结构的双向链表实现

    C.带链的栈有栈顶指针和栈底指针,因此又称为双重链表

    D.节点中具有多个指针域的链表称为多重链表

    E.栈可以用链式存储结构的单链表实现


    D 双向链表与二叉链表均是有两个指针域的链表,A选项错误。在单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,最后一个结点的指针域的值由NULL改为指向表头结点,这样的链表称为循环链表。循环队列是队列的一种顺序存储结构。循环链表与循环队列是两种存储结构,B选项错误。双向链表结点有两个指针域,向前一个结点的指针和指向后一个结点的指针,而带链的栈是单链表形式,C选项错误。故正确答案为D选项。

  • 第3题:

    下列叙述正确的是?

    A.有两个指针域的链表称为二叉链表

    B.队列可以用链式存储结构的单链表实现

    C.带链的栈有栈顶指针和栈底指针,因此又称为双重链表

    D.节点中具有多个指针域的链表称为多重链表


    A

  • 第4题:

    栈的特点是后进先出,若用单链表作为栈的存储结构,并用头指针作为栈顶指针,则( )。

    A.入栈和出栈操作都不需要遍历链表
    B.入栈和出栈操作都需要遍历链表
    C.入栈操作需要遍历链表而出栈操作不需要
    D.入栈操作不需要遍历链表而出栈操作需要

    答案:A
    解析:
    本题用单链表作为栈的存储结构,因为栈的操作是先进后出,因此无论是入栈还是出栈,都只对栈顶元素操作,而在单链表中用头指针作为栈顶指针,此时无论是出栈还是入栈,都只需要对头指针指向的栈顶指针操作即可,不需要遍历链表。

  • 第5题:

    8、下列关于栈的叙述中,正确的是()。

    A.栈只能采用顺序存储

    B.在栈中只能删除数据

    C.在栈中只能插入数据

    D.栈可以采用链式存储,采用链式存储时不会产生栈溢出现象。


    D 栈是限定在一端进行插入与删除的线性表。这种线性表只能在固定的一端进行插入和删除操作,因此栈又称后进先出表或先进后出表。