次优二叉查找树

在各项等概率的前提下,对有序表进行折半查找性能是最优的
但如果各项记录的查找概率不等时,则使查找性能达最佳的判定树
是其带权内路径长度之后PH值取最小值的二叉树,称为静态最优查找树
由于构造静态最优查找树花费时间代价较高,因此可用近似最优查找树


#include 
#include 
typedef char ElemType;
typedef struct BiTNode
{
    ElemType data;
    struct BiTNode *lchild;
    struct BiTNode *rchild;
}BiTNode,*BiTree;

void SecondOptimal(BiTree T,ElemType R[],float sw[],int low,int high);
int main()
{
    BiTree T;
    ElemType *R;
    float *sw;
    int i,num;
	T=(BiTree)malloc(sizeof(BiTNode));

    printf("共有多少个关键字:");
    scanf("%d",&num);
    R=(ElemType *)malloc(sizeof(ElemType)*(num+1));
    sw=(float *)malloc(sizeof(float)*(num+1));
    for(i=1;i<=num;i++)
    {
        fflush(stdin);
        printf("输入关键字和其权值:");
        scanf("%c %f",&R[i],&sw[i]);
    }
    sw[0]=0;
	for(i=1;i<=num;i+

你可能感兴趣的:(学习积累,次优二叉查找树)