• 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->data
    data) //将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

      有一个由整数元素构成的非空单链表A,设计一个算法,将其拆分成两个单链表A和B,使得A单链表中含有所有的偶数节点,B单链表中含有所有的奇数节点,且保持原来的相对次序

    • 1

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

    • 2

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

    • 3

      若线性表最常用的运算是存取第i个元素及其前驱元素值,则采用(<br/>)存储方式节省时间。 A: 单链表 B: 双链表 C: 循环单链表 D: 顺序表

    • 4

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