C 用類的形式封裝動態順序表

2021-08-21 16:45:59 字數 2716 閱讀 1964

在前面已經用c語言實現過了

今天用另一種語言c++ 以類的形式來實現一下

順序表是在計算機記憶體中以陣列的形式儲存的線性表,線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的各個元素、使得線性表中在邏輯結構上相鄰的資料元素儲存在相鄰的物理儲存單元中,即通過資料元素物理儲存的相鄰關係來反映資料元素之間邏輯上的相鄰關係,採用順序儲存結構的線性表通常稱為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。

#define _crt_secure_no_warnings

#include

#include

#include

using namespace std;

typedef int datatype;

class seqlist

seqlist(datatype* array, size_t size)//建構函式

:_pdata(new datatype[size])

, _capacity(size)

, _size(size)

seqlist(const seqlist& s)//拷貝建構函式

~seqlist()//析構函式

}///

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

/////

void pushback(const datatype& data)//尾插

void popback()//尾刪

void insert(size_t pos, datatype data)//任意位置插入

void erase(size_t pos)//任意位置刪除

size_t size()const

//大小

size_t capacity()const

//容量

bool empty()const

//判空

void resize(size_t newsize,datatype data=datatype())//改變順序表的元素個數

else

//多出來的,自身容量放不下,要開闢空間

}///

//////

//////

//////

//////

//////

//////

//////

//////

//////

//////

////////

datatype& operator(size_t index)//下標運算子過載

//後面是const 前面返回值是引用 一定要用const(外界接收時可能就被修改掉了)

const datatype& operator(size_t index)const

//下標運算子過載

datatype& front() //獲取第乙個元素

const datatype& front()const

//獲取第乙個元素

datatype& back()//獲取最後乙個元素

const datatype& back()const

//獲取最後乙個元素

void clear()//將順序表中所有元素清空(不會改變容量)

void checkcapacity()//檢測容量

}friend ostream& operator

<

return _cout;

}private:

datatype* _pdata;

size_t _capacity;//最大元素的個數

size_t _size;//有效元素的個數

};void test()

; seqlist s1(array, sizeof(array) / sizeof(array[0]));

s1.pushback(5);

cout << s1 << endl;

cout << s1.size() << endl;

cout << s1.capacity() << endl;

s1.resize(2);

cout << s1 << endl;

cout << s1.size() << endl;

cout << s1.capacity() << endl;

s1.resize(6);

cout << s1 << endl;

cout << s1.size() << endl;

cout << s1.capacity() << endl;

s1.resize(10);

cout << s1 << endl;

cout << s1.size() << endl;

cout << s1.capacity() << endl;

s1.erase(1);

cout << s1 << endl;

cout << s1.size() << endl;

cout << s1.capacity() << endl;

}

結果圖如下:

用類的形式用鍊錶排序

這裡為了簡單突出類,鍊錶,我沒有封裝,假定兩個鍊錶已經排好序了,位於表頭的數子是最小的數字,然後從小到大依次排列,函式返回乙個新的鍊錶的表頭的指標。新鍊錶包含原來兩個鍊錶的所有的節點,而且同樣按從小到大的順序排列。如下 nicai.h namespace linkedlistofclasses ni...

C 用類封裝 pthread

乙個專案中需要用到pthread,發現把它封裝到類中使用起來更加的方便。這裡儲存了例項 以備以後使用。標頭檔案中定義了threadbase類,它包含了執行緒基本的一些介面,start join 和quit run 為介面函式,使派生類可以實現自己的工作函式。thread base.h ifndef ...

用C 實現順序表

seqlist.h include include using namespace std typedef int datatype class seqlist delete array array null array newarray capacity 2 capacity private da...