niusouti.com

若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。A、仅设尾指针的单向链表B、仅设头指针的单向链表C、仪设尾指针的单向循环链表D、仅设头指针的单向循环链表

题目

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

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

相似考题
更多“若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。A、仅设尾指针的单向链表B、仅设头指针的单向链表C、仪设尾指针的单向循环链表D、仅设头指针的单向循环链表”相关问题
  • 第1题:

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

    此题为判断题(对,错)。


    标准答案:对

  • 第2题:

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


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

  • 第3题:

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

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

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

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

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

    A.

    B.

    C.

    D.


    正确答案:C

  • 第4题:

    不问的存储结构适用于不同的应用场合。某线性表最常用的运算是插入和删除,删除运算是指删除表头第一个元素,插入运算是指在表尾插入一个新元素,那么采用(105)存储方式最好。

    A.仅有头指针的单向循环链表

    B.仅有尾指针的单向循环链表

    C.单向链表

    D.双向链表


    正确答案:A
    解析:插入元素时需要遍历链表的数据结构是:仅有头指针的单向循环链表、单向链表、双向链表,时间复杂度为O(n)。但仅有尾指针的单向循环链表插入和删除的时间复杂度都为O(1),因此使用它最好。

  • 第5题:

    非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。

    Ap==head

    Bp==NULL

    Cp->next==head

    Dp->next==NULL


    C

  • 第6题:

    要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。
    p->next=head;

  • 第7题:

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

  • 第8题:

    设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。单向链表的链域为next,设指针p指向单向链表中的某个结点,指针s指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:p->next=s;s->next=p->next;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写?


    正确答案:不对,s->next=p->next;p->next=s;

  • 第9题:

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

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

    正确答案:D

  • 第10题:

    填空题
    要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。

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

  • 第11题:

    问答题
    设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。单向链表的链域为next,设指针p指向单向链表中的某个结点,指针s指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:p->next=s;s->next=p->next;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写?

    正确答案: 不对,s->next=p->next;p->next=s;
    解析: 暂无解析

  • 第12题:

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

    正确答案: p1->next=head2;p2->next=head1;
    解析: 暂无解析

  • 第13题:

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

    此题为判断题(对,错)。


    标准答案:对

  • 第14题:

    某线性表最常用的运算是插入和删除,插入运算是指在表尾插入一个新元素。删除运算是指删除表头第一个元素,那么采用 ______ 存储方式最节省运算时间

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

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

    C.单向链表

    D.顺序存储


    正确答案:A
    解析:由于规定了插入运算是在表尾插入一个新元素,删除运算是指删除表头第一个元素。如果使用单向链表、仅有头指针的单向循环链表,每次插入结点都要遍历整个链表,找到链尾,才能进行插入。如果采用顺序存储,每次删除表头元素时,都要移动n-1个元素。如果使用仅有尾指针的单向循环链表,插入新元素时,仅需移动尾指针就可以了:删除结点时,只需要一步操作就可以定位到头结点,就可以删除了,因为头结点是尾指针的下一个结点。

  • 第15题:

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

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

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

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

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


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

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

  • 第16题:

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

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

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

  • 第17题:

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

  • 第18题:

    以下说法中不正确的是()。

    A双向循环链表中每个结点需要包含两个指针域

    B已知单向链表中任一结点的指针就能访问到链表中每个结点

    C顺序存储的线性链表是可以随机访问的

    D单向循环链表中尾结点的指针域中存放的是头指针


    B

  • 第19题:

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

  • 第20题:

    设有头指针为head的非空的单向链表,指针p指向其尾结点,要使该单向链表成为单向循环链表,则可利用下述语句()

    • A、p=head
    • B、p=NULL
    • C、p->next=head
    • D、head=p

    正确答案:C

  • 第21题:

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

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

  • 第22题:

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

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

  • 第23题:

    单选题
    非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。
    A

    p==head

    B

    p==NULL

    C

    p->next==head

    D

    p->next==NULL


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