C 實現簡單順序表

2021-08-08 22:24:45 字數 3117 閱讀 1499

順序表是在計算機記憶體中以

陣列的形式儲存的線性表,是指用一組位址連續的

儲存單元

依次儲存

資料元素

的線性結構。即線性表採用順序儲存的方式儲存就稱之為順序表。在c語言中,我們通過建立乙個結構體的方式來實現了順序表,在c++中可通過建立乙個類的形式來建立乙個順序表。

直接來看**:

#include using namespace std;

#include typedef int datatype;

class seqlist

// 三大big

seqlist(const seqlist& s);

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

~seqlist()//析構函式 }

void pushback(int 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;//判斷順序表是否為空

datatype& operator(size_t index);//操作符過載

const datatype& operator(size_t index)const;

datatype& front();// 返回順序表中的第乙個元素

const datatype& front()const;

datatype& back();// 返回順序表中最後乙個元素

const datatype& back()const;

void clear();// 清空順序表中的所有元素

// 將順序表中元素個數改變到newsize

void resize(size_t newsize, const datatype& data = datatype());

//輸出運算子過載

friend ostream& operator<<(ostream& _cout, const seqlist& s);

private:

void _checkcapacity();

private:

datatype* _array;

size_t _size;

size_t _capacity;

};//拷貝構造

seqlist::seqlist(const seqlist& s) }}

//過載=

seqlist& seqlist::operator=(const seqlist& s)

} return *this;

}//後增

void seqlist::pushback(int data)

else

temp[_size] = data;

_capacity += _size;

_size++;

delete _array;

_array = temp; }}

//後刪

void seqlist::popback()

else }

//任意位置增

void seqlist::insert(size_t pos, datatype data)

_array[pos] = data;

_size++;

} else if (_size==_capacity)//增加元素就需要開闢新的空間

_array[pos] = data;

delete _array;

_array = temp;

} }else }

//任意位置刪

void seqlist::erase(size_t pos)

_size--;

}size_t seqlist::size()const

size_t seqlist::capacity()const

datatype& seqlist::operator(size_t index)

const datatype& seqlist::operator(size_t index)const

// 返回順序表中的第乙個元素

datatype& seqlist::front()

const datatype& seqlist::front()const

// 返回順序表中最後乙個元素

datatype& seqlist::back()

const datatype& seqlist::back()const

// 將順序表中元素個數改變到newsize

void seqlist::resize(size_t newsize, const datatype& data)

else

for (i = _size; i < newsize; i++)

_size = newsize;

_capacity = _size;

delete _array;

_array = temp; }}

// 清空順序表中的所有元素

void seqlist::clear()

//判斷順序表是否為空

bool seqlist::empty() const

//對輸出操作符《過載

ostream& operator<<(ostream& _cout, const seqlist& s)

_cout << endl;

_cout << s._size << endl;

_cout << s._capacity;

return _cout;

}datatype array = ;

seqlist list(array,5);

void funtest1()

{ cout << list《說明:對於主函式裡面呼叫的測試函式,想要測試哪部分函式功能就將相應的測試函式取消注釋,這樣更有利於觀測其函式功能。

ps:歡迎提出任何建議,謝謝!

順序表 用c語言簡單實現順序表

test.h ifndef seplist h define seplist h include include include include define max 100 define default sz 3 當前預設有效值 define isc sz 2 動態分配預設增長個數 typedef...

用C 實現簡單的順序表

這周課後練習是實現老師上課的時候講的順序表的一些基本操作。我們用的是c語言的教材,但之前學計算機語言的時候學的是c 雖然大家都說差不多,但對c語言的一些用法不太熟悉,還是嘗試著用c 的語言來編寫。如下 includeusing namespace std int y struct mylist vo...

C語言順序表的簡單實現

插入元素 刪除元素 定位元素 include include define maxsize 1024 線性表的最大長度 typedef structsqlist,sqlink 說明標示符 void createlist sqlink l 創空表 void clearlist sqlink l 置空表...