資料結構 順序表(C語言)

2021-07-22 08:20:29 字數 2422 閱讀 3306

seqlist.h

#include

#include

#define maxsize 100

typedef struct

seqlisttype;

void seqlistinit(seqlisttype *sl); //初始化順序表

int seqlistlength(seqlisttype *sl); //返回順序表的元素數量

int seqlistadd(seqlisttype *sl,data data); //向順序表中新增元素

int seqlistinsert(seqlisttype *sl,int n,data data); //向順序表中插入元素

int seqlistdelete(seqlisttype *sl,int n); //刪除順序表中的據元素

data *seqlistfindbynum(seqlisttype *sl,int n); //根據序號返回元素

int seqlistfindbycont(seqlisttype *sl,char *key); //按關鍵字查詢

int seqlistall(seqlisttype *sl);//遍歷順序表中的內容

seqlist.c

void seqlistinit(seqlisttype *sl) //初始化順序表

int seqlistlength(seqlisttype *sl) //返回順序表的元素數量

int seqlistadd(seqlisttype *sl,data data) //向順序表中新增元素

sl->listdata[++sl->listlen]=data;//儲存資料到表尾

return1;}

int seqlistinsert(seqlisttype *sl,int n,data data) //向順序表中插入元素

if(n<1||n>sl->listlen-1)

int i;

for(i=sl->listlen;i>=n;i--)//插入點之後的資料後移一位 從後往前

sl->listdata[i+1]=sl->listdata[i];

sl->listdata[n]=data;//插入節點

sl->listlen++;//表長度+1

return1;}

int seqlistdelete(seqlisttype *sl,int n) //刪除順序表中的資料元素

int i;

for( i=n;ilistlen;i++)//資料前移

sl->listdata[i]=sl->listdata[i+1];

sl->listlen--;//表長度-1

return1;}

data *seqlistfindbynum(seqlisttype *sl,int n) //根據序號返回元素

return &(sl->listdata[n]);

}int seqlistfindbycont(seqlisttype *sl,char *key) //按關鍵字查詢

seqlisttest.c

#include

typedef struct

data;

#include"seqlist.h"

#include"seqlist.c"

int seqlistall(seqlisttype *sl) //遍歷順序表

}int main()

else

break;

}while(1);

printf("\n節點順序為:\n");

seqlistall(&sl);

fflush(stdin);

printf("\n取出的節點序號:");

int i;

scanf("%d",&i);

data1=seqlistfindbynum(&sl,i);

if(data1)

printf("第%d節點是:(%s,%s,%d)\n",i,data1->key,data1->name,data1->age);

fflush(stdin);

printf("\ninput key:");

scanf("%s",&key);

i=seqlistfindbycont(&sl,key);

//printf("%d",i);

data1=seqlistfindbynum(&sl,i);

if(data1)

printf("第%d節點是:(%s,%s,%d)\n",i,data1->key,data1->name,data1->age);

getch();

return

0;}

C語言資料結構 順序表

資料結構的一些講解,供學習者參考,也順帶作為複習 線性表的順序儲存是指在記憶體中用位址連續的一塊儲存空間順序存放線性表的各元素,用這種儲存形式儲存的線性表稱為順序表。因為記憶體中的位址空間是線性的,因此,用物理上的相鄰實現資料元素之間的邏輯相鄰關係既是簡單又自然的。將資料儲存區data和指標last...

順序表 c語言資料結構

最近才學的資料結構,自己寫出來順序表求大神指點指點有沒有優化的地方 增 刪 改 查 github上有原始碼 github源 標頭檔案 pragma once include include typedef int sdatatype typedef struct seqlist seqlist 初始...

資料結構 順序表 C語言

1.規範的程式設計 標頭檔案 list.h 介面封裝 list.c 介面的測試 test.c 2.誰申請誰釋放 申請完畢空間,一定要主動釋放。3.解題思路 畫圖 分析步驟 偽 需要將偽 修改為真實可用的 1 大小固定,訪問方便 2 位址連續 儲存密度大 3 刪除或者插入時,需要移動元素 4 除第0個...