二叉搜索树的基本操作二.实验内容设在一棵二叉搜索树的每个结点的data域中,含有关键字key域和统计相同关键字元素个数的

3989722022-10-04 11:39:541条回答

二叉搜索树的基本操作
二.实验内容
设在一棵二叉搜索树的每个结点的data域中,含有关键字key域和统计相同关键字元素个数的count域.当向该树插入一个元素时,若树中已有相同关键字值的结点,则使该结点的count域值增1,否则由该元素值生成一个新结点插入到该树中,并使其count域置为1.当向该树删除一个元素时,若树中该元素结点的count域值大于1,则使该结点的count域值减1,否则(count域值等于1)删除该结点.请编写程序实现该二叉搜索树的下述基本操作:
初始化该二叉搜索树void InitBSTree(BTreeNode *&bst);
以广义表形式输出该二叉搜索树(每个结点输出内容包括关键字值与相同元素个数值)void PrintBSTree(BTreeNode *bst);
插入一个元素到该二叉搜索树(用非递归算法实现) void Insert (BTreeNode *&bst,ElemType item);
从二叉搜索树中删除某个元素(用非递归算法实现) int Delete (BTreeNode *&bst ,ElemType item).
求该二叉搜索树的最大关键字值(用非递归算法实现)ElemType MaxBSTree(BTreeNode *bst).
把二叉搜索树的结构定义及基本操作实现函数存放在文件BSTree.h中.
建立主程序文件test5.cpp,在主函数main()中通过调用BSTree.h中的函数进行测试.提示:可以在主函数中首先初始化二叉搜索树;然后从键盘输入数据,通过循环调用插入算法建立二叉搜索树;再以广义表形式输出该二叉搜索树;输出二叉搜索树中的最大结点值;最后调用删除算法删除某元素,并输出删除后的二叉搜索树.

已提交,审核后显示!提交回复

共1条回复
涕泪交垂 共回答了20个问题 | 采纳率95%
哈哈,居然有人来提问了,城院的 我刚奋斗了2小时做了下,你看看对不?Test5.cpp:#include #include typedef double ElemType;#define Maxsize&nb...
1年前

相关推荐

在一个二叉搜索树中插入10个元素C++数据结构
在一个二叉搜索树中插入10个元素C++数据结构
原题:
the ten keys Q.W.E.R.T.Y.U.I.O.P should be inserted one by one into a binary search tree.(the tree is initially empty.)(主要是看不明白.字母还可以比大小嘛.
draw the binary search tree after each insertion.(只要能给我最后的二叉搜索树的结果就好)
what is the height of the final tree.(求下树高.)
construct a binary search tree with the smae ten keys that is lower than the tree just obtained..


谢过
xinxian_1年前1
感激嫉妒 共回答了19个问题 | 采纳率89.5%
字母的比较大小就是按照字母表的顺序来的,A最小Z最大.这个题可以采用递归算法,思路如下:先跟根节点比较(树空第一个插入的节点是树根),比根节点小,插入到左子树;比根节点大,插入到右子树,一次插入,每次只能插入在叶子节点.这个是数据结构的问题,找本教材都会有伪代码.
数据结构与算法:从空二叉树开始,严格按照二叉搜索树的插入算法(不进行旋转平衡),
数据结构与算法:从空二叉树开始,严格按照二叉搜索树的插入算法(不进行旋转平衡),
从空二叉树开始,严格按照二叉搜索树的插入算法(不进行旋转平衡),逐个插入关键码{15, 82, 10, 4, 55, 89, 29, 45, 54, 35, 25}构造出一颗二叉搜索树,对该二叉搜索树按照后序遍历得到的序列为(每两个元素之间用一个空格隔开)
自己的一点1年前1
且停且走 共回答了21个问题 | 采纳率95.2%
问题:数据结构与算法:从空二叉树开始,严格按照二叉搜索树的插入算法(不进行旋转平衡),
回答:功能超全,注释详细
链接: http://pan.baidu.com/s/1o6HTnC2 密码: q9r5
还有后序输出的代码:
void PostOrderPrint(Node *t)
{
if(t!=NULL)
{
PostOrderPrint(t->left);
PostOrderPrint(t->right);
printf("%d ",t->key);
}
}
二叉搜索树的基本操作用vc++编写实现二叉搜索树设二叉搜索树的每个结点中,含有关键码key以及统计该关键码出现次数的域c
二叉搜索树的基本操作
用vc++编写
实现二叉搜索树
设二叉搜索树的每个结点中,含有关键码key以及统计该关键码出现次数的域count,实现算法当向该树插入一个元素时,若树中已存在该元素的关键码相同的结点,则该结点的count域加1;否则生成新的结点,并置该结点的count域为1.
wena1年前1
传说online 共回答了18个问题 | 采纳率83.3%
你可以用二叉排序树!
比如查找:
首先判断根节点是否为空,如果为空,则返回,否则判断所查找的数和根节点的大小,如果查找的数小于根节点的,则递归左子树,否则递归右子树,直到到了空节点或者是找到结果两张情况!
下列关于二叉搜索树的说法正确的有
下列关于二叉搜索树的说法正确的有
1 二叉搜索树按照中序遍历将各结点打印出将各结点打印出来,将得到按照由小到大的排列.
2 如果结点x的左子树有右子树,则存在某个结点的值介于结点x的值和x左儿子的值之间,并且这个结点在x的左子树之中.
3 当根结点没有左儿子时,根结点一定是值最小的结点.
4 二叉搜索树一定是满二叉树.
szbyd_51年前1
remhill 共回答了17个问题 | 采纳率88.2%
1、正确,二叉排序树的性质
2、正确,也由性质可以推出
3、正确,左小右大
4、错误,基本上不可能,两者不在一个概念域
有关二叉搜索树,求解题思路.一棵二叉树或者是空的,或者包括一个结点,后面连接着两棵子树.这两棵子树分别称为左子树和右子树
有关二叉搜索树,求解题思路.
一棵二叉树或者是空的,或者包括一个结点,后面连接着两棵子树.这两棵子树分别称为左
子树和右子树.每个结点上都标有一个英文小写字母.若一个结点不是任何一个结点的子结
点,我们称之为根结点.我们说,一棵树是二叉搜索树(BST),它必须符合以下条件:所
有左子树的字母必须小于根结点的字母,所有右子树的字母必须大于根结点的字母.一棵二
叉搜索树是这样编号的:
● 空树的编号是一个空字符串(包括0个字母)
● 否则,根结点的字母排在前面,紧接着是左子树的编号,再接下来是右子树的编号.
考虑所有k结点的二叉搜索树,每一棵都只包含前k个小写字母.想象我们拥有一张按字典
顺序编排的编号表,(n,k)—编号表示这张表里的第n个编号.
样例
下面是14个4结点的二叉搜索树编号(按字典顺序排列):
abcd abdc acbd adbc adcb bacd badc cabd cbad dabc dacb dbac dcab dcba
字符串badc是(7,4)—编号,它表示的二叉搜索树如下图所示:
任务
输入格式
输入只有一行,包括两个整数n和k,中间用一个空格隔开,1≤k≤19.
过k结点二叉搜索树的总数.
输出格式
只有一行,包括一个字符串(全部是小写字母),表示(n,k)—编号.
样例输入
11 4
样例输出
dacb
请尽量详细点.
ofbest1年前1
jeffrey441 共回答了13个问题 | 采纳率76.9%
不太懂你说了啥
中北镇
地址:天津市西青区百度地图