C 實現動態線性表

2022-10-03 18:30:12 字數 1692 閱讀 2407

之前在學習c語言的時候用c語言實現了動態線性表。現在再使用c++實現一下動態線性表。

相關資料結構方面就不多說了。在之前的部落格裡也有。下面就直接來實現吧。

這裡使用指標來遍歷陣列,這樣在算size,capacity的時候,直接用指標相減的方式就可以得到元素個數,以及容量。

vector.h

#include

#include

#include

#include

//用typedef定義int為儲存型別,想更改直接更改這一句即可。

typedef int datatype;

class vector

//拷貝構造

vector(const vector& v)

//賦值運算子的過載

vector& operator=(vector v);

//析構函式

~vector()

//順序表的有效長度

程式設計客棧 size_t size() const

//順序表的容量

size_t capacity() const

//擴容順序表

void expand(size_t n);

//尾插

void pushback(datatype x);

//擷取容量

void reserve(size_t n);

//尾刪

void popback();

//任意位置插入

void insert(size_t pos, datatype x);

程式設計客棧 //任意位置刪除

void erase(size_t pos);

//查詢元素

size_t find(datatype x);

//列印當前順序表

void print();

private:

//指向第乙個元素的指標

datatype* _first;

//指向最後乙個有效元素的下乙個位置

datatype* _finish;

//順序表容量的下乙個位置

datatype* _endofstorage;

};vector.cpp

#include"vector_list1.h"

//賦值運算子的過載可以使用傳值的方式進行

//在傳值的時候預設呼叫了拷貝建構函式,進行了深拷貝

//而當前這個傳入的v就是我們想要的賦值之後的結果

//將當前的順序表與順序表v一交換,就可以不用再自己實現深拷貝

vector& vector::operator=(vector v)

void vector::expand(size_t n)

void vector::pushback(datatype x)

void vector::popback()

void vector::insert(size_t pos, datatype x)

void vector::erase(size_t pos)

else if(n>capacity())

else

return;

}

void vector::print()

printf("\n");

}int main()

本文標題: c++實現動態線性表

本文位址:

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...

C 線性表的實現

1 線性表的實現,main函式裡是所有函式的測試!有興趣的可以參考!高手請指正 23 include 4 include 5 include 6 using namespace std 78 const int defaultsize 100 9 10 template 11class seqlis...