先建個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...