線性表 順序表

2021-09-30 10:22:29 字數 1996 閱讀 8984

線性表的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 根據實際問題定義具體的大小...