首页 / C语言 / 二叉查找树(二叉排序树)(C语言)
二叉查找树(二叉排序树)(C语言)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了二叉查找树(二叉排序树)(C语言),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2081字,纯文字阅读大概需要3分钟。
内容图文
#include<stdio.h> #include "fatal.h"struct TreeNode; typedef struct TreeNode *Position; typedef struct TreeNode *SearchTree; typedef int ElementType; SearchTree MakeEmpty(SearchTree T); Position Find(ElementType X,SearchTree T); Position FindMin(SearchTree T); Position FindMax(SearchTree T); SearchTree Insert(ElementType X,SearchTree T); SearchTree Delete(ElementType X,SearchTree T); ElementType Retrieve(Position P); struct TreeNode { ElementType Element; SearchTree left; SearchTree right; }; SearchTree MakeEmpty(SearchTree T) { if(T!=NULL) { MakeEmpty(T->left); MakeEmpty(T->right); free(T); } return NULL; } Position Find(ElementType X,SearchTree T) { if(T==NULL) return NULL; if(X<T->Element) return Find(X,T->left); elseif(X>T->Element) return Find(X,T->right); elsereturn T; } Position FindMin(SearchTree T) { if(T==NULL) return NULL; if(T->left==NULL) return T; elsereturn FindMin(T->left); } Position FindMax(SearchTree T) { if(T==NULL) return NULL; elseif(T->right==NULL) return T; elsereturn FindMax(T->right); } SearchTree Insert(ElementType X,SearchTree T) { if(T==NULL) { T=malloc(sizeof(struct TreeNode)); if(T==NULL) FatalError("Out of space!!!"); else { T->Element=X; T->left=T->right=NULL; } } elseif(X<T->Element) T->left=Insert(X,T->left); elseif(X>T->Element) T->right=Insert(X,T->right); return T; } SearchTree Delete(ElementType X,SearchTree T) { Position TmpCell; if(T==NULL) Error("Error not found"); elseif(X<T->Element) T->left=Delete(X,T->left); elseif(X>T->Element) T->right=Delete(X,T->right); elseif(T->left&&T->right) { TmpCell=FindMin(T->right); T->Element=TmpCell->Element; T->right=Delete(X,T->right); } else { TmpCell=T; if(T->left==NULL) T=T->right; elseif(T->right=NULL) T=T->left; free(TmpCell); } return T; } ElementType Retrieve(Position P) { if(P==NULL) return -1; elsereturn P->Element; }
原文:http://www.cnblogs.com/wuchanming/p/3806785.html
内容总结
以上是互联网集市为您收集整理的二叉查找树(二叉排序树)(C语言)全部内容,希望文章能够帮你解决二叉查找树(二叉排序树)(C语言)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。