合并两个顺序表

    xiaoxiao2021-03-25  49

    要求是这样的,给定两个顺序表a,b。取a,b的并集到a,并使之有序, 比如a中元素为:2,4,7 b中元素为:3,4,5 那么合并之后a为:2,3,4,5,7

    main.cpp

    # include<iostream> # include"seqList.h" using namespace std; template <typename T> void mergeSeq(seqList<T> &a, seqList<T> &b); int main() { seqList<int> myseq(20); for (int i = 1;i <=3 ;i++) myseq.push_back( 10-2* i);//8,6,4 myseq.sort(); myseq.traver(); cout << endl; seqList<int> myseq2(20); myseq2.push_back(3); myseq2.push_back(4); myseq2.push_back(5);//3,4,5 myseq2.traver(); cout << endl; mergeSeq<int>(myseq, myseq2); myseq.traver(); cout << endl; system("pause"); return 0; } template <typename T> void mergeSeq(seqList<T> &a, seqList<T> &b) { int i = 0; for (;i <b.length();i++) { if (!a.locateElem(b.getElem(i+1)))//如果a中没有b中的元素 a.push_back(b.getElem(i+1)); } a.sort(); }

    seqList的成员函数sort:

    template <typename T> void seqList<T>::sort() //默认从小到大排序 { //冒泡排序 for (int i = 0;i < iLen - 1;i++) for (int j = 0;j < iLen - i-1;j++) { if (pT[j] > pT[j + 1]) { pT[j] = pT[j] + pT[j + 1]; pT[j + 1] = pT[j] - pT[j + 1]; pT[j] = pT[j] - pT[j + 1]; } } }

    转载请注明原文地址: https://ju.6miu.com/read-27412.html

    最新回复(0)