首页 > TAG信息列表 > bitTree
A - 数据结构实验之二叉树二:遍历二叉树 Description 已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式
A - 数据结构实验之二叉树二:遍历二叉树 Description 已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。 Input 连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。 Output 每二叉树节点删除、添加等操作(C++)
二叉树节点删除操作可以分为三种情况: 叶子节点 有左或右孩子节点 既有左孩子又有右孩子 思路: 只为叶子节点,可直接删掉,使用delete()函数(C语言中是free)释放节点;有单个孩子节点,则让孩子节点接替要删除的节点;同时有左右孩子节点,则查找右子树中最小值,将其值付给要删除的节点,然后删二叉树基本操作(层序、先序创建,遍历方式等)
关于树的操作,大部分都是使用递归的思想。只有层序构建二叉树时需要注意一下,它通过使用队列的方式记录每一个节点,当一个节点有孩子节点时,就将孩子节点添加到队列中。当队列为空时,则说明二叉树建立完毕。具体操作都在代码中。 #include <iostream> #include <queue> using namespac非线性表-BiTree(二叉树)
1.Status InitBiTree(BiTree *T) 构造空二叉树 2.Status DestroyBiTree(BiTree *T) 销毁二叉树,前提T存在 3.Status CreateBiTree(BiTree *T) 用先序遍历创建二叉树 4.Status ClearBiTree(BiTree *T) 清空二叉树,前提T存在5.int BiTreeDepth(BiTree T) 返回二叉树的深度,前提T存二叉树的基本操作(小系统)
验证数据: ab##cd### 具体代码如下 #include <stdio.h> #include<stdlib.h> typedef struct node{ char data; struct node *rchild,*lchild; }BiTNode,*BiTtree; int count=0; int leafcount=0; int depth=0; void CreateTree(BiTNode **root) { char dat