#include#include//copy,copy_backward函式
#include//ostringstream
#include//字串
#include//異常處理
#include//ostream_iterator輸出流
#include//vector線性表
using namespace::std;
//異常類
class illegalparametervalue
void outputmessage()
private:
string message;
};class illegalindex
void outputmessage()
private:
string message;
};//向量類
templateclass vectorlist
//adt方法
void erase(int theindex);
void insert(int theindex, const t& theelement);
void output(ostream& cout);
typedef typename vector::iterator iterator; //類的迭代器,很有用
iterator begin()
iterator end()
void half();
void meld(vectorlist& a,vectorlist& b);
void merge(vectorlist& a, vectorlist& b);
void split(vectorlist& a, vectorlist& b);
private:
vector* element;
};//向量線性表建構函式以及其他函式的定義
templatevectorlist::vectorlist(int initialcapacity)
element = new vector;
element->reserve(initialcapacity);
}//插入函式
templatevoid vectorlist::insert(int theindex, const t& theelement)
//刪除函式
templatevoid vectorlist::erase(int theindex)
//輸出函式
templatevoid vectorlist::output(ostream& cout)
//half函式,刪除奇數字的元素
templatevoid vectorlist::half()
}//合併兩個表,值交替進行
templatevoid vectorlist::meld(vectorlist& a,vectorlist& b)
for (int i = 2 * n; i < m + n; i++)
}else //a比b長,則操作相反
for (int i = 2 * m; i < m + n; i++)
}}//對兩個非遞減序列進行合併,保證合併之後是有序的
templatevoid vectorlist::merge(vectorlist& a, vectorlist& b)
while (i < m + n)
sort(element->begin(),element->end()); //先合併兩個線性表,再用sort函式進行公升序排列
}//分解線性表,生成兩個線性表
templatevoid vectorlist::split(vectorlist& a, vectorlist& b)
}int main()
C 線性表的實現
1 線性表的實現,main函式裡是所有函式的測試!有興趣的可以參考!高手請指正 23 include 4 include 5 include 6 using namespace std 78 const int defaultsize 100 9 10 template 11class seqlis...
C 實現順序表(線性表)
基本思想是使用陣列作為盛放元素的容器,陣列一開始的大小要實現確定,並使用乙個pointer指向順序表中最後的元素。順序表中的元素是陣列中元素的子集。順序表在記憶體中是連續的,優勢是查詢,弱勢是插入元素和刪除元素。為避免裝箱拆箱,這裡使用泛型,代替object。使用object的例子可以參照這個鏈結中...
C 簡易線性表實現。
哦,看了siki的資料結構教程,自己嘗試實現了一下。介面類如下,主要就實現了這幾個,using system namespace dsl gets the index of the element by.the element by index.index.t getelementbyindex i...