在数据结构线性表一章中,提出了三种方法。 1、总的方法,并没有涉及具体的存储类型。此处给出了具体的思想。 void MergeList(List La, List Lb, List &Lc) { //已知线性表La和Lb中的数据元素按值非递减排列 //归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列 InitList(Lc); int ai, bj; int i = j = 1; int k = 0; La_len = ListLength(La); Lb_len = ListLength(Lb); while( (i <= La_len) && (j <= Lb_len) ) { GetElem(La, i, ai); GetElem(Lb, j, bj); if(ai <= bj) { ListInsert(Lc, ++k, ai); ++i; } else { ListInsert(Lc, ++k, bj); ++j; } } while(i <= La_len) { GetElem(La, i++,ai); ListInsert(Lc, ++k, ai); } while (j <= Lb_len) { GetElem(Lb, j++, bj); ListInsert(Lc, ++k, bj); } } //MergeList 2、利用线性表的顺序表示给出了顺序表的合并的算法。 首先线性表的动态分配顺序存储结构如下: #defin