静态查找表-C基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*

静态查找表(顺序结构)

实现

Create(&ST,n)构造含有n个元素的静态查找表ST Destroy(&ST)销毁表

Search(ST,key)返回表中位置,若无,返回空

Traverse(ST,Visit())遍历-->函数作为参数暂时不会

*/

#include

#include

#include

typedef int elemtype;

typedef struct {

elemtype *elem;

int length;

}stable;

void Create(stable *ST,int n){

int i;

ST->elem=(elemtype *)malloc((n+1)*sizeof(elemtype));

if(!ST->elem){

printf("\n分配空间失败\n");

exit(1);

}

ST->length=n;

printf("\n请输入%d个数据:",n);

for(i=1;i<=n;i++){

scanf("%d",&ST->elem[i]);

}

}

int Search(stable *ST,elemtype key){ //顺序查找法int i;

ST->elem[0]=key; //哨岗

for(i=ST->length;ST->elem[i]!=key;i--);

return i;

}

void Traverse(stable *ST){

int i;

printf("\n静态查找表中的元素为:");

for(i=1;i<=ST->length;i++){

printf("%d ",ST->elem[i]);

}

printf("\n\n");

}

void Destroy(stable *ST){

free(ST->elem);

ST->elem=NULL;

ST->length=0;

}

void main(){

stable ST;

int n;

elemtype key;

printf("\n请输入元素个数:");

scanf("%d",&n);

Create(&ST,n);

printf("\n请输入要查找的数:");

scanf("%d",&key);

printf("\n要找的元素在第%d位\n",Search(&ST,key));

Traverse(&ST);

Destroy(&ST);

}

相关文档
最新文档