順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。這樣的儲存方式使得線性表邏輯上相鄰的元素,其在物理儲存單元中也是相鄰的。只要知道了第乙個元素的儲存位址,就可以知道線性表中任何乙個元素的儲存位址。本文利用c++語言,在windows平台 visual studio 2015開發環境下實現。功能:應用c++語言實現順序表的各項操作。基本的成員函式:建構函式、拷貝建構函式、賦值運算子的過載、析構函式。
// 順序表構造成功之後,裡面存放了n個元素data
vector(size_t n, const datatype& data = datatype());
vector(const vector& v);
vector& operator=(const vector& v);
~vector();
void pushback(const datatype& data); //尾插
void popback(); //尾刪
void print()//列印順序表
// 給順序表重新賦值,該函式執行完裡面存放了n個元素data
void assign(size_t n, const datatype& data);
// 在順序表的pos位置上插入元素data
void insert(size_t pos, const datatype& data);
// 刪除順序表pos位置上的元素
void erase(size_t pos);
// 改變順序表中的元素為n個,如果n>原來順序表中的元素的個數,多出來的空間用data來填充
void resize(size_t n, const datatype& data = datatype());
// 清空順序表中的元素-->請自己動手驗證是否需要清理vector中的空間
void clear();
// 返回順序表中有效元素的大小
size_t size()const;
// 返回順序表中空間容量的大小
size_t capacity()const;
// 順序表是否為空,若為空返回true,否則返回null
bool empty()const;
// 通過下邊訪問順序表index位置上的元素。 思考為什麼要成對的來過載
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 _checkcapacity()// 動態擴容
int find(const datatype & data)//查詢資料
1#ifndef __vector_h__
2#define __vector_h__
34 #include5 #include6 #include7
using
namespace
std;89
#define cow 4
10 typedef int
datatype;
1112
class
vector
1320
21//
順序表構造成功之後,裡面存放了n個元素data
22 vector(size_t n, const datatype& data =datatype())
2331 vector(const vector&v)
32 :_array(new
datatype[v._size])
33, _size(v._size)
34,_capacity(v._capacity)
3538 vector& operator=(const vector&v)
3950
return *this;51
}52 ~vector()
5361}62
63public:64
void pushback(const datatype&data)
6569
void
popback()
7074
void
print()
7580 cout <
82//
給順序表重新賦值,該函式執行完裡面存放了n個元素data
83void assign(size_t n, const datatype&data)
8489
90//
在順序表的pos位置上插入元素data
91void insert(size_t pos, const datatype&data)
92100
else
101106 _array[pos] =data;
107 _size++;
108}
109}
110111
//刪除順序表pos位置上的元素
112void
erase(size_t pos)
113120
else
121126 --_size;
127}
128}
129130
//改變順序表中的元素為n個,如果n>原來順序表中的元素的個數,多出來的空間
131//
請用data來填充
132void resize(size_t n, const datatype& data =datatype())
133142
else
143148
}149
150//
清空順序表中的元素-->請自己動手驗證是否需要清理vector中的空間
151void
clear()
152158
//返回順序表中有效元素的大小
159 size_t size()const
160163
//返回順序表中空間容量的大小
164 size_t capacity()const
165168
//順序表是否為空,若為空返回true,否則返回null
169bool empty()const
170173
174//
通過下邊訪問順序表index位置上的元素
175//
思考為什麼要成對的來過載
176 datatype& operator
(size_t index)
177181
const datatype& operator(size_t index)const
182186
//返回順序表中第乙個元素的引用,思考為什麼要返回應用,為什麼要成對過載
187 datatype&front()
188191
const datatype& front()const
192196
//返回順序表中最後乙個的元素的引用,思考為什麼要返回引用,為什麼要成對過載
197 datatype&back()
198201
const datatype& back()const
202205
private
:206
//動態擴容-->該函式中有坑,請找出坑在哪?
207void
_checkcapacity()
208220
}221
int find(const datatype &data)
222229
return -1
;230
}231
private
:232 datatype*_array;
233 size_t _size; //
儲存有效元素的個數
234 size_t _capacity; //
空間的實際大小
235};
236237
#endif
//__vector_h__
C語言動態實現順序表
順序表的動態儲存結構 typedef int datatype typedef struct seqlistd seqlistd,pseqlistd 部分函式操作 void initseqlistd pseqlistd pseq 初始化 void checkcapacity pseqlistd ps...
動態實現順序表
順序表是在計算機記憶體中以 陣列的形式儲存的線性表,是指用一組位址連續的 儲存單元 依次儲存 資料元素 的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的 儲存單元中。下面來進行順序表的動態實現 標頭檔案 ifndef seqlist ...
實現動態順序表
標頭檔案seqlist.h中 pragma once include include typedef int datatype typedef struct seqlist seqlist 列印順序表 void printseqlist seqlist pseq printf n 增大容量 void...