線性表玩具之鍊錶版本 C語言

2021-05-04 09:42:47 字數 4466 閱讀 7654

2023年3月26日 12:41

slyar

本來不想發這麼水的**,可是最近也沒什麼好寫的...純當湊文章數目吧...

這是乙個線性表操作的小玩具,此篇為鍊錶版本,也就是用指標和動態記憶體分配的。

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

4041

4243

4445

4647

4849

5051

5253

5455

5657

5859

6061

6263

6465

6667

6869

7071

7273

7475

7677

7879

8081

8283

8485

8687

8889

9091

9293

9495

9697

9899

100101

102103

104105

106107

108109

110111

112113

114115

116117

118119

120121

122123

124125

126127

128129

130131

132133

134135

136137

138139

140141

142143

144145

146147

148149

150151

152153

154155

156157

158159

160161

162163

164165

166167

168169

170171

172173

174175

176177

178179

180181

182183

184185

186187

188189

190191

192193

194195

196197

198199

200201

202203

204205

206207

208209

210211

212213

214215

216217

218219

220221

222223

224225

226227

228229

230231

232233

234235

236237

238239

240241

242243

244245

246247

248249

250251

252253

254255

256257

258259

260261

262263

264265

266267

268269

270271

272273

274275

276277

278279

280281

282283

284285

286287

288289

290291

292293

294295

296297

298299

300301

302303

304305

306307

308309

310311

312313

314315

316317

318319

320321

322323

324325

326327

328329

330331

/*

線性鍊錶操作

/* 定義鍊錶節點型別 */

typedef

struct node

linklist;

/* 函式宣告部分 */

linklist* get(linklist*,

int)

;linklist* createlist();

void freelist(linklist*);

void output(linklist*);

int)

;void insertnode(linklist*,

int,

int)

;void readnode(linklist*,

int)

;void searchfromlist(linklist*,

int)

;void deletenode(linklist*,

int)

;void updatenode(linklist*,

int,

int)

;void listlist(linklist*);

/* 主函式 */

int main(

)else

if(ch ==

'i')

else

if(ch ==

'd')

else

if(ch ==

'r')

else

if(ch ==

'u')

else

if(ch ==

's')

else

if(ch ==

'e')

} system(

"pause");

return0;

}/* 列印說明文件 */

void output(linklist *list)

/* 建立線性鍊錶 */

linklist* createlist(

)else

return head;

}/* 列印線性鍊錶 */

void listlist(linklist* head)

else

printf

("/n");

}}/* 讀取節點 */

void readnode(linklist* head,

int pos)

if(pos == j)

else

system(

"pause");

}/* 查詢節點 */

void searchfromlist(linklist* head,

int n)

i++;

p = p -> next;}if

(!sign)

system(

"pause");

}/* 追加節點 */

int n)

s =(linklist*

) malloc(

sizeof

(linklist));

if(s ==

null

)else

}/* 得到節點位置 */

linklist* get(linklist* head,

int i)

if(i == j)

else

}/* 插入節點 */

void insertnode(linklist* list,

int n,

int pos)

else

else}}

/* 刪除節點 */

void deletenode(linklist* head,

int pos)

else

}/* 編輯節點 */

void updatenode(linklist *head,

int n,

int pos)

else

}/* 釋放鍊錶 */

void freelist(linklist* p)

free(p)

;}

C語言,線性表 順序表 鍊錶

c語言資料結構中兩個常見的線性表,用來儲存資料等 一 建立順序表 定義 將線性表中的元素相繼存放在乙個連續的儲存空間中。可利用一維陣列描述儲存結構 特點 線性表的順序儲存方式 遍歷 順序訪問,可以隨機訪問 順序表 include define maxsize 100 定義陣列長度 define ok...

線性表之鍊錶

鏈式的線性表適用於經常進行刪除,插入操作的工作,如 訂票系統。鍊錶是用乙個乙個的節點連線起來的表,在物理上不是連續的,在邏輯上是連續的。通過節點間的指標指向來表示節點間的關係。所以在進行鍊錶操作之前,要先定義乙個節點結構。節點結構包含兩個東西 資料域,指標域。資料域就是用來存放資料的,指標域是用來表...

線性表之鍊錶

1,為什麼要使用鍊錶 1,順序表的長度是固定的,如果超出分配的長度就會造成溢位,如果存放的資料太少則會造成空間浪費。2,在插入元素和刪除元素時 尤其不在尾部時 會移動大量的元素,造成效能和效率低下。基於以上問題,使用鍊錶可以很好地避免順序表中出現的問題。這也是我們要使用鍊錶的原因。2,鍊錶的儲存結構...