C++代码,数据结构-次优查找树

本文探讨了在查找概率不均等的情况下,如何构建次优查找树以提高查找性能。通过C++代码展示了如何创建次优查找树,并强调在构造过程中需要注意权值比较,确保根节点的选择合理。
摘要由CSDN通过智能技术生成

     当有序表中的个记录的查找概率不等时,要是的查找性能最优,根据折半查找的判定树可知,可以建立静态最优查找树,但是构造最优查找树的花费的时间代价能大,所以书上介绍了一个二叉树——次优查找二叉树,它的建立方法,书上讲了,但是原理没有说,我也无从得知,只能按照书上的算法,先建立次优二叉树。

关键字 A B C D E F G H I

权值    1   1 2 5 3 4  4  3 5

#include<iostream>
#include<fstream>
#include<cstdlib>
#include<queue>
using namespace std;
 struct Binode{
     char data;
     Binode *lchild,*rchild;
};
typedef Binode* Bitree;

void vist(char c){
cout<<c<<"   ";}



void Creatsw(int sw[],int quan[],int n){
for(int i=0;i!=n+1;++i){  int x=0;
    for(int j=0;j!=i;++j){

x+=quan[j];

    } sw[i]=x;
}


}

void Second_option(Bitree &T,char ch[],int sw[],int low,int high){//利用书上的建立方法,原理我也不知道
int mins=abs(sw[high]-sw[low]),dw=sw[high]+sw[low-1];
int i=low;
for(int j=low+1;j<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值