简答题

有两个循环链表,链头指针分别为L1和L2,要求写出算法将L2链表链到L1链表之后,且连接后仍保持循环链表形式。

正确答案

voidmerge(Lnode*L1,Lnode*L2)
{Lnode*p,*q;
while(p->next!=L1)
p=p->next;
while(q->next!=L2)
q=q->next;
q->next=L1;p->next=L2;
}

答案解析

相似试题
  • 设单循环链表L1,对其遍历的结果是:x1,x2,x3,…,xn-1,xn。请将该循环链表拆成两个单循环链表L1和L2,使得L1中含有原L1表中序号为奇数的结点且遍历结果为:x1,x3,…;L2中含有原L1表中序号为偶数的结点且遍历结果为:…,x4,x2。

    简答题查看答案

  • 设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别用p->llink和p->rlink表示,则下列等式中()成立。

    单选题查看答案

  • 已知有一个单向循环链表,其每个结点中含三个域:pre,data和next,其中data为数据域,next为指向后继结点的指针域,pre也为指针域,但它的值为空,试编写算法将此单向循环链表改为双向循环链表,即使pre成为指向前驱结点的指针域。

    简答题查看答案

  • 头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表, 可执行head=head->nex;和()。

    单选题查看答案

  • 用循环链表表示的队列长度为n,若只设头指针,则出队和入队的时间复杂度分别是()和()。

    填空题查看答案

  • 非空的双向循环链表中任何结点的前驱指针均不为空。

    判断题查看答案

  • 在单项循环链表head的末尾(rear指针指向)插入s指针指向的结点,正确操作是()。

    单选题查看答案

  • 循环链表的特点是表中()一个结点的指针域指向(),整个链表形成一个环。

    填空题查看答案

  • 假设以不带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针。试设计相应的入队和出队的算法。

    简答题查看答案