这样重复操作,直到关键字序列输入完毕,二叉排序树便建立好了。二叉排序树的实现(2)查找模块与查找函数都是是从二叉排序树中的根节点开始,根据要查找的整数,若比其当前二叉排序树结点中的整数小就进入其左孩子所在的左子树中继续查找,否则进入其右孩子所在的右子树中继续查找。如果查找成功则不进行插入操作,直接进行下个关键字的插入,若查找失败则在叶子节点中插入关键字。(3)遍历操作借助队列与栈等数据结构模型进行操作(4)插入新结点时和建立二叉排序树时的关键字的插入操作一样。二叉排序树的实现2.二叉排序树数据结构typedef struct BiTNode{ElemType data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;3基本操作(1) 建立二叉排序树函数BiTree CreateBiT(int n){for(i=1;i<=n;i++) //循环n次输入关键字序列{scanf("%d",&关键字序列);调用插入函数 InsertBiT}return 二叉树;}(2) 插入函数Status InsertBiT(BiTree *T,int k){while(p){在二叉树排序树中查找关键字;若查找成功结束插入操作;}查找失败建立新结点;将该整数赋予该结点;将该结点插入某叶子结点的左孩子或右孩子中;return 1;}(3) 查找函数Status Postsearch(BiTree T,int m,int &t){if(查找结点不空){if(在结点的左孩子的左子树中查找))if(在右孩子的右子树中查找))if查找成功))return 1;return 0; //查找失败}elsereturn 1;}(4) 主函数int main(){输入关键字个数n;调用CreateBiT(n)/建立二叉排序数;建立完毕后:前序遍历;中序遍历;后序遍历;输入查找关键字m1;查找成功输出1,否则输出0;输入查找关键字m2;查找成功输出1,否则输出0;输入要插入的关键字;插入操作结束后:前序遍历;中序遍历;后序遍历;非递归中序遍历;层次遍历;return 0;}二. 总结该实验巧妙的运用栈数据结构实现二叉排序的非递归层次遍历。运用链队列实现二叉排序树的层次遍历,很好的实现了各种数据结构的巧妙运用。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32329-1.html
以战止战吧