在以下几种存储结构中,哪个最适合用作链栈?并说明理由。 (1)带头节点的单链表 (2)不带头节点的循环单链表 (3)带头节点的双链表

题目

在以下几种存储结构中,哪个最适合用作链栈?并说明理由。 (1)带头节点的单链表 (2)不带头节点的循环单链表 (3)带头节点的双链表


相似考题
更多“在以下几种存储结构中,哪个最适合用作链栈?并说明理由。 (1)带头节点的单链表 (2)不带头节点的循环单链表 (3)带头节点的双链表”相关问题
  • 第1题:

    在______中,只要指出表中任何一个节点的位置,就可以从它出发访问到表中其他所有的节点。

    A.线性单链表

    B. 双向链表

    C. 线性链表

    D. 循环链表


    正确答案:D
    解析: 在循环链表中,只要指出表中任何一个节点的位置,就可以从它出发访问到表中其他所有的节点,而线性单链表做不到这一点。

  • 第2题:

    在单链表中,增加头节点的目的是

    A.方便运算的实现

    B.使单链表至少有一个节点

    C.标识表节点中首节点的位置

    D.说明单链表是线性表的链式存储实现


    正确答案:A
    解析:头节点不仅标识了表中首节点的位置,而且根据单链表(包含头节点) 的结构,只要掌握了表头,就能够访问整个链表,因此增加头节点的目的是为了便于运算的实现。

  • 第3题:

    在单链表中,增加头节点的目的是( )。

    A. 使单链表不为空

    B. 方便运算的实现

    C. 增加存储空间

    D. 说明单链表是线性表的链式存储实现


    正确答案:A
    头节点不仅标识了表中首节点的位置,而且根据单链表(包含头节点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头节点目的是为了便于运算的实现。本题答案为A。

  • 第4题:

    以下各种存储结构中,最适合用作链队的链表是()。

    A.带队首指针和队尾指针的循环单链表
    B.带队首指针和队尾指针的非循环单链表
    C.只带队首指针的非循环单链表
    D.只带队首指针的循环单链表

    答案:B
    解析:
    因为队列的入队和出队操作都在端点进行。即在队首和队尾进行。所以带队首指针和队尾指针的非循环单链表最适合用作链队的链表。

  • 第5题:

    若线性表最常用的操作是在最后一个元素之后插入一个结点和删除最后一个结点,则采用()存储方式节省时间。

    • A、单链表;
    • B、双向链表;
    • C、单循环链表;
    • D、带头结点的双循环链表;

    正确答案:D

  • 第6题:

    某带头结点的单链表的头指针为head,判定该链表为非空的条件是()。


    正确答案:head->next!=NULL

  • 第7题:

    若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。

    • A、单链表
    • B、给出表头指针的单循环链表
    • C、双链表
    • D、带头结点的双循环链表

    正确答案:D

  • 第8题:

    若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则采用()存储方法最节省时间。

    • A、单链表
    • B、带头指针的单循环链表
    • C、双链表
    • D、带尾指针的单循环链表

    正确答案:D

  • 第9题:

    设rear是指向非空、带头结点的循环单链表的尾指针,则该链表首结点的存储位置是()


    正确答案:rear->next->next

  • 第10题:

    单选题
    若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用()存储方式最节省运算时间。
    A

    单链表

    B

    给出表头指针的单循环链表

    C

    双链表

    D

    带头结点的双循环链表


    正确答案: C
    解析: 暂无解析

  • 第11题:

    单选题
    设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。
    A

    单链表

    B

    单循环链表

    C

    带尾指针的单循环链表

    D

    带头结点的双循环链表


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则采用()存储方法最节省时间。
    A

    单链表

    B

    带头指针的单循环链表

    C

    双链表

    D

    带尾指针的单循环链表


    正确答案: C
    解析: 在链表中的最后一个结点之后插入一个结点需要知道终端结点的地址,所以,单链表、带头指针的单循环链表、双链表都不合适,考虑在带尾指针的单循环链表中删除第一个结点,其时间性能是O(1),所以,答案是D。

  • 第13题:

    若某链表最常用的操作是在最后一个节点之后插入一个节点和删除最后一个节点,则采用______存储方式最节省时间。

    A.单链表

    B.双链表

    C.单循环链表

    D.带头节点的双循环链表


    正确答案:D

  • 第14题:

    若某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则 采用( )存储方式最节省运算时间。A.单链表B.双链表C.单循环链表D.带头结点的双循环链表


    正确答案:D
    带头结点的循环链表可以很方便地找到尾结点,从而节省查找的时间。

  • 第15题:

    若用单链表来表示队列,则应该选用()。

    A.带尾指针的非循环链表
    B.带尾指针的循环链表
    C.带头指针的非循环链表
    D.带头指针的循环链表

    答案:B
    解析:
    假设尾指针为TAIL,则通过TAIL可访问队尾,通过TAIL—>next可访问队头。

  • 第16题:

    在长度为n(Il>1)的()上,删除第一个元素.其时间复杂度为O(n)。

    A.只有首结点指针的不带头结点的循环单链表
    B.只有尾结点指针的不带头结点的循环单链表
    C.只有尾结点指针的带头结点的循环单链表
    D.只有头结点的循环单链表

    答案:A
    解析:
    只有首结点指针的不带头结点的循环单链表删除第一个元素,需要遍历整个链表,因此A项的时间复杂度为O(n),BCD三项的时间复杂度都为O(1)。

  • 第17题:

    某带头结点的单链表的头指针为head,判定该链表为空的条件是()


    正确答案:head->next==NULL

  • 第18题:

    若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点,则采用()存储方式最节省时间。

    • A、单链表
    • B、双链表
    • C、单循环链表
    • D、带头结点的双循环链表

    正确答案:D

  • 第19题:

    编写算法,实现带头结点单链表的逆置算法。


    正确答案: voidinvent(Lnode*heaD.
    {Lnode*p,*q;
    if(!head->next)returnERROR;
    p=head->next;q=p->next;p->next=NULL;
    while(q)
    {p=q;q=q->next;p->next=head->next;head->next=p;}
    }

  • 第20题:

    某带头结点的单链表的头指针head,判定该单链表非空的条件()。


    正确答案:head->next!=Null

  • 第21题:

    设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。

    • A、单链表
    • B、单循环链表
    • C、带尾指针的单循环链表
    • D、带头结点的双循环链表

    正确答案:D

  • 第22题:

    单选题
    带头节点的单链表L为空的判定条件是()。
    A

    L = =null

    B

    L->data= =null

    C

    L->next= =null

    D

    L->next= =data


    正确答案: B
    解析: 暂无解析

  • 第23题:

    填空题
    某带头结点的单链表的头指针head,判定该单链表非空的条件()。

    正确答案: head->next!=Null
    解析: 暂无解析

  • 第24题:

    填空题
    设rear是指向非空、带头结点的循环单链表的尾指针,则该链表首结点的存储位置是()

    正确答案: rear->next->next
    解析: 暂无解析