• 2021-04-14
    1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。
  • qb->ext=A->ext

    举一反三

    内容

    • 0

      已知有两个按元素值递增有序的顺序表A和B(这样的顺序表称递增有序顺序表)。设计一个算法将顺序表A和B的全部元素归并到一个按元素递增有序的顺序表C中。并分析算法的空间复杂度和时间复杂度。

    • 1

      假设以两个元素依值递增有序排列的线性表 A 和 B 分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表 C ,其元素为 A 和 B 中元素的交集,且表 C 中的元素也依值递增有序排列。对上述条件作以下两点修改,对顺序表重新编写求得表 C 的算法。[br][/br](1)假设在同一表( A 或 B )中可能存在值相同的元素,但要求新生成的表 C 中的元素值各不相同;(2)利用 A 表空间存放表 C 

    • 2

      已知顺序表中的元素按元素值非递减有序排列,编写一个算法,删除顺序表中多余的值相同的元素。

    • 3

      1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。 //将合并逆置后的结果放在C表中,并删除B表 StatusListMergeOppose_L(LinkList&A,LinkList&B,LinkList&C) { LinkListpa,pb,qa,qb; pa=A; pb=B; qa=pa;//保存pa的前驱指针 qb=pb;//保存pb的前驱指针 pa=pa->next; pb=pb->next; A->next=NULL; C=A; while(pa&&pb){ if(pa->datadata){ qa=pa; pa=pa->next; qa->next=A->next;//将当前最小结点插入A表表头 A->next=qa; } else{ qb=pb; pb=pb->next; ()//将当前最小结点插入B表表头 A->next=qb; } } while(pa){ qa=pa; pa=pa->next; qa->next=A->next; A->next=qa; } while(pb){ qb=pb; pb=pb->next; qb->next=A->next; A->next=qb; } pb=B; free(pb); returnOK; }

    • 4

      一个顺序表元素值有序递增,编写算法,删除顺序表中值相同的多余元素.