順序表基本操作

2021-07-02 11:49:20 字數 2223 閱讀 2939

先建個seqlist.h

**如下

#include

#include

#define maxn 100 //定義線性表的長度

typedef struct

seqlisttype;

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

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

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

int seqlistinsert(seqlisttype *sl,int n,datadata);//向順序表中插入資料

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)

for(i=sl->listlen;i>=n;i--)//插入時現將順序表中資料向後移動

sl->listdata[n] = data;

sl->listlen++;

return1;

}//刪除順序表中元素

int seqlistdelect(seqlisttype *sl,int n)

for(i=n;i<=sl->listlen;i++)

sl->listlen--;

return1;

}//根據序號找元素返回

data *seqlistfindbynum(seqlisttype *sl,int n)

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

}//按關鍵字查詢

int seqlistfindbycont(seqlisttype *sl,char *key)

return0;

}最後編寫個測試類

#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要取出結點的序號:");

scanf("%d",&i);//輸入結點序號

data1 =seqlistfindbynum(&sl,i);

if(data1)

fflush(stdin);//清空輸入緩衝區

printf("要查關鍵字");

scanf("%s",key);//輸入關鍵字

i=seqlistfindbycont(&sl,key);

data1 =seqlistfindbynum(&sl,i);

if(data1)

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

while(1);

return 0;

}最後可以看到執行結果如下:

順序表 基本操作

include include define initsize 100 順序表儲存空間的初始分配量 typedef int elemtype 在實際問題中,根據需要定義所需的資料型別 typedef struct sqlist void initlist sqlist l 初始化操作 建立乙個空的順...

順序表基本操作

本題要求實現順序表元素的增 刪 查詢以及順序表輸出共4個基本操作函式。l是乙個順序表,函式status listinsert sq sqlist l,int pos,elemtype e 是在順序表的pos位置插入乙個元素e pos應該從1開始 函式status listdelete sq sqli...

順序表基本操作

include include include definemaxn 50 定個長度,方便修改 define elemtype int 巨集定義之後便於修改型別,不用乙個乙個去修改 structnode voidlist creat struct node l 建立線性表 voidlist empt...