本文由DigitalConvict供稿。
原文出处:http://www.codeguru.com/algorithms/SimpleBinaryTree.html
环境: (无特别限制) 在VC6 上开发
我不会详细介绍二叉树理论的详细细节,因为这些东西,Per Nilsson 已经在他的“二叉树”中讨论过了,你可以在如下地址here找到详细的细节。
对半查找树对于找到在一个列表中很少变化的项来说是很有用的。添加和删除操作的开销是很大的,只主要是因为对半查找树的平衡性所决定的。
我们可以这样说这个类是在同一主题上的一个不同的执行方式。
执行细节
创建这棵树
要创建二叉树,可以简单的创建一个CSimpleBinaryTree 对象并初始化。
#define MAXELEMS 100
或
CSimpleBinaryTree btree;
btree.Initialise(MAXELEMS,sizeof(CSomeObject));btree.Initialise(MAXELEMS,sizeof(CSomeObject), someCompareFunction);
或btree.Initialise(MAXELEMS,sizeof(CSomeObject), someCompareFunction, nGrowTrigger, nGrowByValue, nShrinkTrigger, nShrinkByValue);
"someCompareFunction"是一个有两个指针参数的函数的指针,这个函数根据第一个参数是否小于,等于,大于第二个参数而分别返回负数,0和正数。CSimpleBinaryTree 提供了一个通用的全局比较函数,它可以比较两个长整型的指针。
时间: 2024-11-02 19:29:54