利用随机函数产生30000个随机整数,进行顺序查找、折半查找,并进行比较。建立二叉排序树,并进行查找
代码如下:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define NULL 0
#define MAX 100
typedef int KeyType;
typedef struct
{
KeyType key;
}ElemType;//元素类型
//顺序查找
typedef struct{
ElemType *elem;
int length;
}SSTable;
int Create(SSTable *ST)
{
int i,n;
printf("\n 请输入表长: ");
scanf("%d",&n);
ST->elem=(ElemType*)malloc((n+1)*sizeof(ElemType));
if(!ST->elem)return 0;
printf(" 请输入 %d 个数据:",n);
for(i=1;i<=n;i++)scanf("%d",&(ST->elem[i].key));
ST->length=n;
return 1;
}
//在顺序表中查找关键字等于key的数据元素,若找到,则函数值为该元素在表中的位置,
//否则为0,指针变量time记录所需和关键字进行比较的次数。
int Search(SSTable ST,KeyType key,int*time)
{
int i;
ST.elem[0].key=key;
*time=1;
for(i=ST.length;ST.el