• 2021-04-14
    设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间
  • void inverse(LinkList &L)
    { p=L->next; L->next=NULL; while ( p) { q=p->next; p->next=L->next; L->next=p; p = q; } }

    内容

    • 0

      设计一个算法,通过一趟遍历确定单链表L(至少含两个数据结点)中第一个元素值最大的结点。

    • 1

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

    • 2

      【2-4】下面算法的功能是:对一个表头指针为h的单链表,通过遍历一趟链表,将链表中所有结点的链接方向逆转(将结点中的值倒转,如1→2→3→4变为4→3→2→1)。请在空白处填入正确的语句。(每空5分)void Reverse(LinkList &L) { LinkList p = _____①_____, pr; L->next = ____②_____; while(p != NULL) { _____③_____; p = p->next; pr->next = L->next; ______④_____; } }

    • 3

      设计一个算法将带头结点的循环双链表L的所有结点逆置。

    • 4

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