線性表的adt
list.h
templateclass list
;
順序表的事先宣告 & 沒有定義成內嵌的順序表成員函式的實現
alist.h
#include "stdafx.h"
#include "list.h"
#define defaultlistsize 255
template class alist : public list
~alist()
void clear();
bool insert(const elem&);
bool remove(elem&);
void setstart();
void setend();
void prev();
void next();
int leftlength() const;
int rightlength() const;
bool setpos(int pos);
bool getvalue(elem& it) const;
void print() const;
};template void alist::clear()
template // insert at front of right partition
bool alist::insert(const elem& item)
listarray[fence] = item;
listsize++;
return true;
}template < class elem>
bool alist::remove(elem& it)
listsize--;
return true;
}template < class elem>
void alist::setstart()
template < class elem>
void alist::setend()
template < class elem>
void alist::prev()
template < class elem>
void alist::next()
template < class elem>
int alist::leftlength() const
template < class elem>
int alist::rightlength() const
template < class elem>
bool alist::setpos(int pos)
template < class elem>
bool alist::getvalue(elem& it) const
}///
// 定義模板類,實現部分和宣告部分都要放在標頭檔案(*.h)裡,不能放在cpp檔案裡。
template < class elem>
void alist::print() const
cout << " | ";
while(temp < listsize)
cout << " > \n";
}
注意:一開始,我把 沒有定義成內嵌的順序表成員函式的實現 寫在了alist.cpp檔案裡,一直編譯通過不了。事實上,這樣是不對的,定義模板類,實現部分和宣告部分都要放在標頭檔案(*.h)裡,不能放在cpp檔案裡。
主函式
test.cpp
#include "stdafx.h"
#include #include "alist.h"
using namespace std;
int _tmain(int argc, _tchar* ar**)
線性表 順序表
1 線性表 線性表是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。線性表 list,零個或多個資料...
線性表 順序表
線性結構的特點是 在非空的有限集合中,只有唯一的第乙個元素和唯一的最後乙個元素。第乙個元素沒有直接前驅元素,最後乙個沒有直接的後繼元素。其它元素都有唯一的前驅元素和唯一的後繼元素。要想將線性表在計算機上實現,必須把其邏輯結構轉化為計算機可識別的儲存結構。線性表的儲存結構主要有兩種 順序儲存結構和鏈式...
線性表 順序表
基本思想 用一段位址連續的儲存單元一次儲存線性表的資料元素 隨機訪問 注意事項 c 語言中陣列下標是從0開始的,而線性表中元素序號是從1開始的,也就是說 線性表中第i個元素儲存結構在陣列中下標為i 1的位置。首先是大體的函式宣告 const int maxsize 100 根據實際問題定義具體的大小...