順序表的增刪查改(C語言實現)

2021-10-08 09:04:33 字數 4170 閱讀 4939

//"common.h"

#ifndef _common_h_

#define _common_h_

#include

#include

#include

#include

#include

#include

//檢查記憶體洩漏

#pragma warning(disable:4996)

#define elemtype int

#define sldatetype size_t

#endif _common_h_

//"seqlist.h"

#ifndef _seqlist_h_

#define _seqlist_h_

#include

"common.h"

#define seqlist_default_size 20

//順序表的容量

typedef

struct seqlist//順序表

seqlist;

void

seqlistinit

(seqlist* plist)

;//初始化

void

seqlistdestory

(seqlist* ps)

;//清空

void

seqlistprint

(seqlist* ps)

;//列印

void

seqlistpushback

(seqlist* ps, sldatetype x)

;//尾插

void

seqlistpushfront

(seqlist* ps, sldatetype x)

;//頭插

void

seqlistpopfront

(seqlist* ps)

;//頭刪

void

seqlistpopback

(seqlist* ps)

;//尾刪

// 順序表查詢

intseqlistfind

(seqlist* ps, sldatetype x)

;// 順序表在pos位置插入x

void

seqlistinsert

(seqlist* ps, size_t pos, sldatetype x)

;// 順序表刪除pos位置的值

void

seqlisterase

(seqlist* ps, size_t pos);//

bool isfull

(seqlist* ps)

//判斷順序表是否為滿

bool isempty

(seqlist* ps)

//判斷順序表是否為空

void

seqlistinit

(seqlist* ps)

void

seqlistdestory

(seqlist* ps)

void

seqlistprint

(seqlist* ps)

printf

("over\n");

}void

seqlistpushback

(seqlist* ps, sldatetype x)

ps->data[ps->size++

]= x;

}void

seqlistpushfront

(seqlist* ps, sldatetype x)

size_t i = ps->size;

while

(i >0)

ps->data[0]

= x;

ps->size++;}

void

seqlistpopfront

(seqlist* ps)

size_t i =0;

while

(i < ps->size -1)

ps->size--

;printf

("刪除成功!\n");

}void

seqlistpopback

(seqlist* ps)

ps->size--

;printf

("刪除成功!\n");

}// 順序表查詢

intseqlistfind

(seqlist* ps, sldatetype x)

size_t i =0;

while

(i < ps->size)

i++;}

return-1

;}// 順序表在pos位置插入x

void

seqlistinsert

(seqlist* ps, size_t pos, sldatetype x)

if(pos >=

0&& pos <= ps->size)

ps->data[pos]

= x;

ps->size++

;printf

("插入成功!\n");

}}// 順序表刪除pos位置的值

void

seqlisterase

(seqlist* ps, size_t pos)

if(pos >=

0&& pos < ps->size)

ps->size--

;printf

("刪除成功!\n");

}}#endif _seqlist_h_

//"main.c"

#include

"seqlist.h"

intmain()

printf

("尾插法插入成功!\n");

break

;case2:

printf

("請輸入資料(以-1為結束標誌):>");

while

(scanf

("%d"

,&input)

&& input !=-1

)printf

("頭插法插入成功!\n");

break

;case3:

seqlistprint

(&list)

;break

;case4:

printf

("請輸入要查詢的值:>");

scanf

("%d"

,&value)

;printf

("下標為:%d"

,seqlistfind

(&list, pos));

break

;case5:

seqlistpopback

(&list)

;break

;case6:

seqlistpopfront

(&list)

;break

;case7:

printf

("請輸入要插入的值:>");

scanf

("%d"

,&value)

;printf

("請輸入要插入的位置:>");

scanf

("%d"

,&pos)

;seqlistinsert

(&list, pos, value)

;break

;case8:

printf

("請輸入要刪除的位置:>");

scanf

("%d"

,&pos)

;seqlisterase

(&list, pos)

;break

;case9:

seqlistdestory

(&list)

;break

;default

:printf

("輸入錯誤,請重新輸入!\n");

break;}

system

("pause");

system

("cls");

}while

(input)

;system

("pause");

return0;

}

順序表的增 刪 查 改實現(c語言)

資料結構順序表 實現增 刪 查 改四個功能 具體 如下 include include pragma warning disable 4996 define num 10 typedef int datetype typedef struct seqlist seqlist void test se...

實現順序表的增刪查改

線性表分為兩種 順序表 順序儲存 和鍊錶 鏈式儲存 這裡實現一下順序表管理資料的增刪查改操作 標頭檔案自定義標頭檔案中一般存放自定義函式的函式宣告 sqlist.h pragma once include include include typedef int sqldatatype typedef...

用C語言實現順序表的增刪查改和逆置

在資料結構中,我們最開始接觸的就是順序表,那麼順序表是什麼呢?順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。既然它有陣列的特點...