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 }
转载于:https://www.cnblogs.com/lovecodepql/p/7800667.html
转载请注明原文地址: https://win8.8miu.com/read-1490093.html