| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 828 人关注过本帖
标题:菜鸟系列之三:二叉排序树的建立和查找
只看楼主 加入收藏
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
结帖率:100%
收藏
 问题点数:0 回复次数:2 
菜鸟系列之三:二叉排序树的建立和查找

以下是二叉排序树的建立和查找算法:
typedef char *KeyType;

typedef struct{
KeyType key;
}DataType;


typedef struct BinSTreeNode{
DataType elemt;
struct BinSTreeNode *lchild,*rchild;
}*BinSTree;


BinSTree BSTreeSearch(BinSTree t,KeyType k,BinSTree *p) //查找
{
BinSTree q,bt;
q=t;
bt=t;
while(bt)
{
if(bt->elemt.key==k)
{
*p=bt;
return(bt);
}
q=bt;
if(bt->elemt.key>k)
bt=bt->lchild;
else
bt=bt->rchild;
}
*p=q;
return(bt);
}

void BSTreeInsert(BinSTree *bt,char *k) //建立和插入
{
BinSTree p,q,r;
q=*bt;
if(BSTreeSearch(q,k,&p)==NULL)
{
r=(BinSTree)malloc(sizeof(struct BinSTreeNode));
r->elemt.key=k;
r->lchild=r->rchild=NULL;
if(*bt==NULL)
*bt=r;
if(k<p->elemt.key)
p->lchild=r;
else
p->rchild=r;
}
}
以上算法请求改进,有意者请看看
如何从指针数组中获取元素,并建立二差排序树呢?有意者请给予改进想法
如从
char *st1[8]={"99070101","99070102","99070103","99070104","99070105","99070106","99070107"};
中建立二叉排序树并给予查找?

搜索更多相关主题的帖子: BinSTree FONT KeyType struct 
2007-07-09 10:53
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 
谢谢大家对我菜鸟系列的指导,本人不甚感激,也学到了不少知识,
希望大家多多指导,多多支持,我将好好学习。

惟有学习不断的学习!
2007-07-09 10:56
lishizelibin
Rank: 2
等 级:论坛游民
帖 子:513
专家分:41
注 册:2007-5-10
收藏
得分:0 
高手!我在期待你的出现……
以上算法正确,可供参考

[此贴子已经被作者于2007-7-9 11:08:30编辑过]


惟有学习不断的学习!
2007-07-09 11:01
快速回复:菜鸟系列之三:二叉排序树的建立和查找
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018133 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved