本文主要是介绍数据结构-二叉树[递归实现](构造,析构,先序遍历,中序遍历,后续遍历,层次遍历),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据结构-二叉树[递归实现]
一、二叉树概念
1.定义
二叉树(Binary Tree)是n(n不小于0)个节点组成的有限集合,且满足以下条件之一
(1)n=0时,为空二叉树(无节点)
(2)n>0时,为非空二叉树,由一个根节点和两颗互不相交的子树(左子树,右子树)的二叉树构成
2.常见的二叉树
(1)斜树
所有节点只有左子树或者右子树的二叉树
(2)满二叉树
深度为k,具有2^k-1个节点的二叉树
(3)完全二叉树
具有n个节点,深度为k的二叉树,并且层次编号为i的节点与同样深度的满二叉树的编号为i的节点位置完全相同
二、二叉树的链式储存(递归实现)
1.二叉链表
struct Bt_Node
{T Data;//节点数据,T为数据类型Bt_Node* Left_Child;//左孩子节点Bt_Node* Right_Child;//右孩子节点
};
2.二叉树的构造
采用先序遍历的方法构造二叉树
int Binary_tree<T>::Create_BTree(Bt_Node<T>* &Tree) //为了递归实现构造,将私有数据Tree作为该创建递归函数的引用参数
{T data;cin >> data;if (data == -1) //-1代表空树Tree = NULL;else{Tree = new Bt_Node<T>;Tree->Data = data;Create_BTree(Tree->Left_Child);//创建左子树Create_BTree(Tree->Right_Ch
这篇关于数据结构-二叉树[递归实现](构造,析构,先序遍历,中序遍历,后续遍历,层次遍历)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!