C 類實現順序表和雙向鍊錶

2021-08-04 03:09:48 字數 4495 閱讀 6310

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