设为首页 加入收藏

TOP

二叉查找树(binary search tree)详解(二)
2015-07-24 05:58:29 来源: 作者: 【 】 浏览:12
Tags:查找 binary search tree 详解
ARCH_TREE q, s;
? ? if((*p)->right == NULL) {
? ? ? ? q = *p;
? ? ? ? *p = (*p)->left;
? ? ? ? free(q);
? ? } else if((*p)->left == NULL) {
? ? ? ? q = *p;
? ? ? ? *p = (*p)->right;
? ? ? ? free(q);
? ? } else {
? ? ? ? q = *p;
? ? ? ? s = (*p)->left;
? ? ? ? while(s->right != NULL) {
? ? ? ? ? ? q = s;
? ? ? ? ? ? s = s->right;
? ? ? ? }
? ? ? ? (*p)->element = s->element;
? ? ? ? if(q != p) {
? ? ? ? ? ? q->right = s->left;
? ? ? ? } else {
? ? ? ? ? ? q ->left = s->left;
? ? ? ? }
? ? }
? ? free(s);
}
void deleteBST(SEARCH_TREE *T, element_type key)
{
? ? if(!(*T)) {
? ? ? ? return;
? ? } else if ((*T)->element == key) {
? ? ? ? free(*T);
? ? } else if((*T)->element > key) {
? ? ? ? deleteBST((*)T->left, key);
? ? } else {
? ? ? ? deleteBST((*)T->right, key);
? ? }
}
编程实践
poj2418 Hardwood Species
?
#include
#include
#include
?
struct node {
? ? char name[31];
? ? struct node *lchild, *rchild;
? ? int count;
}tree;
struct node *root;
int n = 0;
void mid_cal(struct node *root)
{
? ? if(root != NULL) {
? ? ? ? mid_cal(root->lchild);
? ? ? ? printf("%s %.4lf\n", root->name, ((double)(root->count) / (double)n) * 100.0);
? ? ? ? mid_cal(root->rchild);
? ? }
}
?
void insertBST(struct node** root, char *s)
{
? ? if(*root == NULL) {
? ? ? ? struct node *p = (struct node*)malloc(sizeof(tree));
? ? ? ? strcpy(p->name, s);
? ? ? ? p->lchild = p->rchild = NULL;
? ? ? ? p->count = 1;
? ? ? ? *root = p;
? ? } else {
? ? ? ? if(strcmp(s, (*root)->name) == 0) {
? ? ? ? ? ? ((*root)->count)++;
? ? ? ? ? ? return;
? ? ? ? } else if(strcmp(s, (*root)->name) < 0) {
? ? ? ? ? ? insertBST(&((*root)->lchild), s);
? ? ? ? } else {
? ? ? ? ? ? insertBST(&((*root)->rchild), s);
? ? ? ? }
? ? }
}
?
int main()
{
? ? char s[31];
? ? while(gets(s)) {
? ? ? ? insertBST(&root, s);
? ? ? ? n++;
? ? }
? ? mid_cal(root);
? ? return 0;
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇读写文本文件 ---字符行式读取 下一篇Easyui 异步树直接全部展开

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: