参考答案和解析
正确答案:循环链表;循环双链表;双链表
更多“可由一个尾指针唯一确定的链表有()、()、()。”相关问题
  • 第1题:

    单向循环链表是单向链表的一种扩充,当单向链表带有头结点时,把单向链表中尾结点的指针域由空指针改为回答;当单向链表不带头结点时,则把单向链表中尾结点的指针域由空指针改为指向()。


    参考答案:头结点的指针、指向第一个结点的指针

  • 第2题:

    在链表结构中,采用(59)可以用最少的空间代价和最高的时间效率实现队列结构。

    A.仅设置尾指针的单向循环链表

    B.仅设置头指针的单向循环链表

    C.仅设置尾指针的双向链表

    D.仅设置头指针的双向链表


    正确答案:A
    解析:采用链表作为存储结构时,从节省空间的角度和需要实现的运算角度考虑(不需要从两个方向遍历元素),应使用单链表,如图2-17所示。

    基本队列定义为元素从一端进从另一端出,以保证先进入的元素先出来。若以最高的时间效率实现元素入、出队列,就应该在链表两端设置指针,使入队和出队操作最简单。从下图可以看出,若仅设置头指针(指向链表的第一个结点),删除元素时比较简单(修改第一个结点的指针域的指向),而插入元素时就需要遍历整个链表以获得尾指针。若仅设置尾指针(指向链表的最后一个结点),则可直接获得头指针(取尾结点指针域的值)以实现删除操作,插入元素时则修改两个指针域(尾结点指针域和新插入结点的指针域)。

  • 第3题:

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

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

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

  • 第4题:

    若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用( )最节省时间。

    A.仅设尾指针的单向链表
    B.仅设头指针的单向链表
    C.仅设尾指针的单向循环链表
    D.仅设头指针的单向循环链表

    答案:C
    解析:
    单向链表仅设头指针时,在表尾插入结点时需要遍历整个链表,时间复杂度为o(n),仅设尾指针时,在表尾插入结点的时间复杂度为O(1),但是不能访问除了尾结点之外的所有其他结点。而单向循环链表仅设头指针时,在表尾插入结点时需要遍历整个链表,时间复杂度为0(n),仅设尾指针时,在表尾插入结点的时间复杂度为0(1),同时达到表头结点的时间复杂度为0(1),因此对于题中给出的操作要求,适合采用仅设尾指针的单向循环链表。

  • 第5题:

    设head1和P1分别是不带头结点的单向链表A的头指针和尾指针,head2和P2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表,写出其中两个关键的赋值语句(不用完整程序,结点的链域为next)。

  • 第6题:

    对一个循环单链表中,表尾结点的指针域与表头指针值()


    正确答案:相同

  • 第7题:

    链队列实际上是一个同时带有头指针和尾指针的单链表,尾指针指向该单链表的()。


    正确答案:最后一个结点

  • 第8题:

    设一个链表最常用的操作是在表尾插入结点和在表头删除结点,则选用下列哪种存储结构效率最高?()

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

    正确答案:D

  • 第9题:

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

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

    正确答案:D

  • 第10题:

    填空题
    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。

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

  • 第11题:

    填空题
    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。

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

  • 第12题:

    填空题
    可由一个尾指针唯一确定的链表有()、()、()。

    正确答案: 循环链表,循环双链表,双链表
    解析: 暂无解析

  • 第13题:

    对于单链表表示法,以下说法正确的是()

    A指向链表的第一个结点的指针,称为头指针

    B单链表的每一个结点都被一个指针所指

    C任何结点只能通过指向它的指针才能引用

    D尾指针变量具标识单链表的作用,故常用尾指针变量来命名单链表


    参考答案:ABC

  • 第14题:

    程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、P、q、均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。

    该程序段实现的功能是( )。

    A.首结点成为尾结点

    B.尾结点成为首结点

    C.删除首结点

    D.删除尾结点


    正确答案:A
    循环找到末尾结点,然后赋值给第一个结点,所以选择A)。

  • 第15题:

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

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

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

  • 第16题:

    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。
    p->next=head;

  • 第17题:

    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。
    p->next=head;

  • 第18题:

    若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。

    • A、仅设尾指针的单向链表
    • B、仅设头指针的单向链表
    • C、仪设尾指针的单向循环链表
    • D、仅设头指针的单向循环链表

    正确答案:C

  • 第19题:

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

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

    正确答案:D

  • 第20题:

    数据结构里,单链表是指()。

    • A、有两个指针域的链表。
    • B、只有一个指针域的链表。
    • C、有三个指针域的链表。
    • D、没有指针域的链表。

    正确答案:B

  • 第21题:

    如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用()。

    • A、只有表头指针没有表尾指针的循环单链表
    • B、只有表尾指针没有表头指针的循环单链表
    • C、非循环双链表
    • D、循环双链表

    正确答案:B

  • 第22题:

    填空题
    链队列实际上是一个同时带有头指针和尾指针的单链表,尾指针指向该单链表的()。

    正确答案: 最后一个结点
    解析: 暂无解析

  • 第23题:

    填空题
    对一个循环单链表中,表尾结点的指针域与表头指针值()

    正确答案: 相同
    解析: 暂无解析