• 2021-04-14
    假设有两个按元素值非递减次序排列的线性表,均以单链表形式存储。请编写算法将这两个...用原来两个单链表的结点存放归并后的单链表
  • void MergeListe (LinkList &La, LinkList &Lb, LinkList &Lc) { pa=La->next; pb=Lb->next; Lc=La; Lc->next=NULL; while (pa &&pb) { if (pa->datadata) //将pa插入在LC的后面,作为第一个节点( 头插法) { r=pa->next; pa->next=Lc->next; Lc->next=pa; pa=r; } else //将pb插入在LC的后面,作为第一个节点( 头插法) { r=pb->next; pb->next=Lc->next; Lc->next=pb; pb=r; } }//while while (pa) { r=pa->next; //La未完,将余下结点顺次头插到Lc表中 pa->next=Lc->next; Lc->next=pa; pa=r; } while(pb) { r=pb->next; //Lb未完,将余下结点顺次头插到Lc表中 pb->next=Lc->next; Lc->next=pb; pb=r; } free (Lb); }

    内容

    • 0

      对于双向链表,在两个结点之间插入一个新结点需修改的指针共(__)个,单链表为 (__)个。

    • 1

      设ha和hb分别是两个带头结点的递增有序单链表。设计一个算法,将这两个有序链表的所有数据结点合并成一个递增有序的单链表hc,要求hc单链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间,ha和hb两个表中允许有重复的数据结点。

    • 2

      如果线性表最常用的操作时读取第i个元素的值,则采用______存储方式最高效。 A: 顺序表 B: 带表头结点的单链表 C: 单链表 D: 双向链表

    • 3

      在线性表中,若经常要存取第i个数据元素及其前趋,则宜采用()存储方式。 A: 循环单链表 B: 不带头结点的单链表 C: 带头结点的单链表 D: 顺序表

    • 4

      1.如果线性表最常用的操作是读取第i 个元素的值,则采用 存储方式最节省时间。 (单选) A: 顺序表 B: 带表头结点的单链表 C: 不带表头结点的单链表 D: 双向链表