順序表是在計算機記憶體中以
陣列的形式儲存的線性表,是指用一組位址連續的
儲存單元
依次儲存
資料元素
的線性結構。即線性表採用順序儲存的方式儲存就稱之為順序表。在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 置空表...