简答题

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

正确答案

算法如下:

答案解析

相似试题
  • 设head为单循环链表L的头结点,则L为空表的条件是()

    填空题查看答案

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

    填空题查看答案

  • 设单循环链表中结点的结构为(data,link),且first为指向链表表头的指针,current为链表当前指针,在循环链表中检测current是否达到链表表尾的语句是()。

    单选题查看答案

  • 假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则a⊕b的运算结果仍为原指针类型,且a⊕(a⊕b)=(a⊕a)⊕b=b;(a⊕b)⊕b=a⊕(b⊕b)=a。则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中LRPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL)的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点,则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。

    简答题查看答案

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

    填空题查看答案

  • 若采用孩子兄弟链表作为树的存储结构,则树的先根遍历应采用二叉树的()。

    单选题查看答案

  • 若二又树采用的是二又链表存储结构.要交换其所有分支结点左右子树的位置利用()遍历方斌最合适。

    填空题查看答案

  • 单循环链表的主要优点是()。

    单选题查看答案

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

    简答题查看答案