1.
#include
2.#include
3.using namespace std;
4.5.
typedef int datatype;
6.7.
class seqlist
8.15.
16.seqlist(size_t n, datatype value)
17.24.
25.seqlist(const seqlist& s)
26.:_pdata(null)
27.35.
}36.
37.seqlist& operator=(const seqlist& s)
38.48.
return *this;
49.}
50.51.
~seqlist()
52.59.
60.}
61.62.
void display()
63.70.
71.void pushback(const datatype& data)
72.77.
78.void popback()
79.84.
85.void insert(size_t pos, const datatype& data)
86.95.
96.void erase(size_t pos)
97.104.
105.
int find(const datatype& data)
106.
112.
return -1;
113.
}114.
115.
size_t size()const
116.
119.
size_t capacity()const
120.
123.
124.
bool empty()const
125.
130.
131.
void clear()
132.
136.
137.
void resize(size_t size, const datatype& data)//把順序表中的有用元素改變到size個,如果不夠則在後面加到size個data
138.
143.
else
if(size
<= _capacity)
144.
149.
else
150.
157.
}158.
}
159.
160.
datatype& operator(size_t index)//輸入乙個下標,返回下標對應的資料(既能讀又能寫)
161.
165.
166.
const datatype& operator(size_t index)const//唯讀,在找到下表對應的資料後不能夠改變
167.
171.
172.
datatype& front()
173.
176.
177.
const datatype& front()const
178.
181.
182.
datatype& back()
183.
186.
187.
const datatype& back()const
188.
191.
private:
192.
void _checkcapacity()
193.
203.
}204.
205.
private:
206.
datatype* _pdata;
207.
size_t _capacity;
208.
size_t _size;
209.
};210.
211.
212.
213.
void test1()
214.
238.
239.
240.
int main()
241.
1.
#include
2.using namespace std;
3.4.
typedef int datatype;
5.struct node6.
12.13.
node* _pnext;
14.node* _ppre;
15.datatype _data;
16.};
17.18.
class list
19.24.
25.list(size_t n, datatype data)//構造n個值為data個鍊錶
26.41.
}42.
}43.
44.list(const list& l)
45.58.
}59.
}60.
list& operator=(const list& l)
61.66.
67.~list()
68.77.
while(head != _phead)
78.83.
_phead = null;
84.}
85.86.
87.void display()
88.97.
cout<
98.}
99.100.
void pushback(const datatype& data)
101.
113.
head->_pnext = buynode(data);
114.
head->_pnext->_ppre = head;
115.
}116.
}117.
118.
void popback()
119.
127.
else
128.
134.
node *tail = head->_ppre;
135.
delete head;
136.
tail->_pnext = null;
137.
}138.
}139.
140.
void pushfront(const datatype& data)
141.
151.
152.
}153.
154.
void popfront()
155.
163.
else
164.
171.
172.
}173.
174.
node* find(const datatype& data)
175.
185.
return null;
186.
}187.
188.
void insert(node* pos, const datatype& data)//在pos的前面插入資料
189.
198.
199.
void erase(node* pos)
200.
214.
else
215.
221.
}222.
}223.
224.
size_t size()
225.
233.
return count;
234.
}235.
236.
bool empty()const
237.
242.
243.
244.
private:
245.
node* buynode(const datatype& data)
246.
249.
private:
250.
node* _phead;
251.
};252.
253.
void funtest()
254.
278.
279.
int main()
280.
285.
所有介面均已通過測試案例
模板實現順序表和雙向鍊錶
模板詳解可以點這裡 include include include using namespace std 區別下面兩種概念 類的型別 vector 類 vector template class vector vector 析構函式 v2 v1 vector vector v 拷貝建構函式 del...
C 實現順序表和煉表
更多c 知識 c 目錄索引 順序表 vector.h pragma once typedef int datatype class vector vector.cpp include vector.h include using namespace std vector vector 構造 firs...
c 封裝雙向鍊錶和順序表
null 乙個節點 else 多個節點 void pushfront const datatype data else void popfront else if tail ppre null 乙個節點 else 多個節點 node find const datatype data cur cur ...