已知两个带头结点的单链表L1和L2中的结点值均已按升序排序,设计一个算法,将L1和L2合并成一个升序的带头结单链表,并用L1记录新的带头结点单链表。

题目

已知两个带头结点的单链表L1和L2中的结点值均已按升序排序,设计一个算法,将L1和L2合并成一个升序的带头结单链表,并用L1记录新的带头结点单链表。


相似考题
更多“已知两个带头结点的单链表L1和L2中的结点值均已按升序排序,设计一个算法,将L1和L2合并成一个升序的带头结单链表,并用L1记录新的带头结点单链表。”相关问题
  • 第1题:

    在一个长度为n(n>1)的带头结点的单链表head上,另设有尾指针r(指向尾结点),执行()操作与链表的长度有关。

    A.删除单链表中的第一个元素

    B.删除单链表中的尾结点

    C.在单链表的第一个元素前插入一个新结点

    D.在单链表的最后一个元素后插入一个新结点


    参考答案:B

  • 第2题:

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

    A.单链表

    B.双链表

    C.单循环链表

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


    正确答案:D

  • 第3题:

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

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

    正确答案:D

  • 第4题:

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

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

    正确答案:D

  • 第5题:

    设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data域的值递增排序。


    正确答案: voidassending(Lnode*heaD.
    {Lnode*p,*q,*r,*s;
    p=head->next;q=p->next;p->next=NULL;
    while(q)
    {r=q;q=q->next;
    if(r->data<=p->datA.
    {r->next=p;head->next=r;p=r;}
    else
    {while(!p&&r->data>p->datA.
    {s=p;p=p->next;}
    r->next=p;s->next=r;}
    p=head->next;}
    }

  • 第6题:

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

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

    正确答案:D

  • 第7题:

    编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。


    正确答案: voidlinklist_c(Lnode*heaD.
    {Lnode*p;p=head;
    if(!p)returnERROR;
    while(p->next!=NULL)
    p=p->next;
    p->next=head;
    }
    设单链表的长度(数据结点数)为N,则该算法的时间主要花费在查找链表最后一个结点上(算法中的while循环),所以该算法的时间复杂度为O(N)。

  • 第8题:

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

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

    正确答案:D

  • 第9题:

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

    正确答案: 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;}
    }
    解析: 暂无解析

  • 第10题:

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

    单链表

    B

    单循环链表

    C

    带尾指针的单循环链表

    D

    带头结点的双循环链表


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

  • 第11题:

    问答题
    设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data域的值递增排序。

    正确答案: voidassending(Lnode*heaD.
    {Lnode*p,*q,*r,*s;
    p=head->next;q=p->next;p->next=NULL;
    while(q)
    {r=q;q=q->next;
    if(r->data<=p->datA.
    {r->next=p;head->next=r;p=r;}
    else
    {while(!p&&r->data>p->datA.
    {s=p;p=p->next;}
    r->next=p;s->next=r;}
    p=head->next;}
    }
    解析: 暂无解析

  • 第12题:

    问答题
    编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。

    正确答案: voidlinklist_c(Lnode*heaD.
    {Lnode*p;p=head;
    if(!p)returnERROR;
    while(p->next!=NULL)
    p=p->next;
    p->next=head;
    }
    设单链表的长度(数据结点数)为N,则该算法的时间主要花费在查找链表最后一个结点上(算法中的while循环),所以该算法的时间复杂度为O(N)。
    解析: 暂无解析

  • 第13题:

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

    A.单链表

    B.双链表

    C.单循环链表

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


    正确答案:D

  • 第14题:

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

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

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

  • 第15题:

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


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

  • 第16题:

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

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

    正确答案:D

  • 第17题:

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


    正确答案: 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;}
    }

  • 第18题:

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


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

  • 第19题:

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


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

  • 第20题:

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

    单链表

    B

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

    C

    双链表

    D

    带头结点的双循环链表


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

  • 第21题:

    问答题
    设某带头结头的单链表的结点结构说明如下:typedef struct nodel{int data struct nodel*next;}node;试设计一个算法:void copy(node*headl,node*head2),将以head1为头指针的单链表复制到一个不带有头结点且以head2为头指针的单链表中。

    正确答案: 一边遍历,一边申请新结点,链接到head2序列中。
    解析: 暂无解析

  • 第22题:

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

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

  • 第23题:

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

    单链表

    B

    带头指针的单循环链表

    C

    双链表

    D

    带尾指针的单循环链表


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

  • 第24题:

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

    单链表;

    B

    双向链表;

    C

    单循环链表;

    D

    带头结点的双循环链表;


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