查找(基础)
Posted accomplishment
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找(基础)相关的知识,希望对你有一定的参考价值。
1 #include<stdio.h> 2 #include<stdlib.h> 3 #define OK 1 4 #define NO 0 5 #define TRUE 1 6 #define FALSE 0 7 #define ERROR -1 8 9 10 typedef int Status; 11 12 typedef int KeyType;//关键字类型 13 typedef struct 14 { 15 int key; //关键字域 16 float weight;//其他域 17 }ElemType_Search;//有序表元素类型 18 19 /*0号单元弃用*/ 20 21 typedef struct 22 { 23 ElemType_Search *elem; //数据元素存储空间基址,0号元素为空 24 int length;//表长度 25 }Table;//查找表 26 27 28 Status Create(Table *T,int n); 29 30 void Destroy(Table *T); 31 32 void Traverse(Table T); 33 34 int main(int argc,char**argv){ 35 36 Table T; 37 int num; 38 printf("1\n函数Create测试..\n"); 39 { 40 printf("创建一个查找表..\n"); 41 printf("输入查找表中的元素个数\n"); 42 scanf("%d",&num); 43 Create(&T,num); 44 printf("\n"); 45 } 46 printf("3\n函数 Traverse 测试..\n"); 47 { 48 printf("输出查找表的信息..\n"); 49 Traverse(T); 50 printf("\n"); 51 52 } 53 printf("2\n函数Destroy 测试..\n"); 54 { 55 Destroy(&T); 56 57 Traverse(T); 58 59 } 60 61 62 63 return 0; 64 65 } 66 67 Status Create(Table *T,int n){ 68 int i; 69 int a; 70 float b; 71 T->elem=(ElemType_Search*)malloc((n+1)*sizeof(ElemType_Search)); 72 if(!(T->elem)) 73 exit(ERROR); 74 for(T->length=0,i=1;i<=n;i++) 75 { 76 printf("输入查找表内元素格式为key weight\n"); 77 scanf("%d %f",&a,&b); 78 //printf("%f",b); 79 T->elem[i].key=a; 80 T->elem[i].weight=b; 81 T->length++; 82 } 83 84 return OK; 85 } 86 87 void Traverse(Table T){ 88 int i; 89 if(T.length==0||T.elem) 90 printf("表为空\n"); 91 for(i=0;i<T.length;i++) 92 { 93 printf("T.elem[%d].key=%d,T.elem[%d].weight=%f\n",i+1,T.elem[i+1].key,i+1,T.elem[i+1].weight); 94 95 } 96 97 } 98 99 void Destroy(Table *T){ 100 if(T->elem) 101 free(T->elem); 102 T->elem=NULL; 103 T->length=0; 104 105 }
以上是关于查找(基础)的主要内容,如果未能解决你的问题,请参考以下文章