【链式存储结构】
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
【层次创建二叉树】
// 创建二叉树
TreeNode* CreateTreeByLevel(vector<char> num){
int len = num.size();
if(len == 0){
return NULL;
}//if
queue<TreeNode*> queue;
int index = 0;
// 创建根节点
TreeNode *root = new TreeNode(num[index++]);
// 入队列
queue.push(root);
TreeNode *p = NULL;
while(!queue.empty() && index < len){
// 出队列
p = queue.front();
queue.pop();
// 左节点
if(index < len && num[index] != -1){
// 如果不空创建一个节点
TreeNode *leftNode = new TreeNode(num[index]);
p->left = leftNode;
queue.push(leftNode);
}
index++;
// 右节点
if(index < len && num[index] != -1){
// 如果不空创建一个节点
TreeNode *rightNode = new TreeNode(num[index]);
p->right = rightNode;
queue.push(rightNode);
}
index++;
}//while
return root;
}
-1代表NULL
创建如上二叉树输入:
15 11 20 8 14 -1 -1 -1 -1 13 -1
【先序创建二叉树】
//按先序序列创建二叉树
int CreateBTree(TreeNode*& T){
int data;
//按先序次序输入二叉树中结点的值,-1表示空树
cin>>data;
if(data == -1){
T = NULL;
}
else{
T = new TreeNode(data);
//构造左子树
CreateBTree(T->left);
//构造右子树
CreateBTree(T->right);
}
return 0;
}
-1代表NULL
创建如上二叉树输入:
15 11 8 -1 -1 14 13 -1 -1 -1 20 -1 -1
分享到:
相关推荐
(2)先序、中序、后序遍历二叉树:递归算法。 (3)中序遍历二叉树:非递归算法(最好也能实现先序,后序非递归算法)。 (4)求二叉树的高度 。 (5)求二叉树的叶子个数。 (6)对于树中每一个元素值为x的结点...
建立二叉树,实现二叉树的先序、中序、后序的递归遍历算法,输出遍历结果。 实现二叉树的先序、中序、后序和层次遍历的非递归算法,输出遍历结果。
二叉树的建立和遍历算法 数据结构课程设计用
二叉树的递归算法:建立二叉树、遍历二叉树.doc 多多指教
二叉树创建及遍历算法
二叉树遍历算法,包括创建二叉树,先序,中序以及后序遍历等。
二叉树的递归算法:建立二叉树、遍历二叉树
1.采用二叉链表作为存储结构,创建一棵二叉树; 2.用递归及非递归算法对二叉树实现先序遍历; 3.用递归及非递归算法对二叉树实现中序遍历; 4.用递归及非递归算法对二叉树实现后序遍历。 5.用递归遍历算法中的访问...
1) 创建一棵二叉树,并对其初始化; 2)先根、中根、后根遍历二叉树; 3) 在二叉树中搜索给定结点的父结点; 4) 搜索二叉树中符合数据域条件的结点; 3、 由教师随机指定树结构,测试上述功能; 判别给定二叉树...
包括了二叉树的各种递归与非递归的遍历算法 还可对二叉树所有结点求和
二叉树遍历算法应用各种算法包括遍历创建求深度等
二叉树的操作算法,包括二叉树的建立、遍历、求高度、线索化等操作
cout* 3--完全二叉树序列创建二叉树 *"; cout* 4--打印二叉树 *"; cout* 5--销毁二叉树 *"; cout*--------------------------------------*"; cout* 6--遍历二叉树(递归) *"; cout* 7--遍历二叉树(非递归)...
二叉树的建立,遍历算法(递归与非递归,基于对列或堆栈)统计二叉树中叶子结点的个数,统计二叉树中结点的总数,求二叉树的深度(后序遍历),求二叉树的宽度(具有结点数最多的层上的结点数,已知二叉树中序遍历和...
编写采用二叉链表形式存储的二叉树的创建、先序、中序、后序和按层遍历的算法。 编写将一棵二叉树的所有左右子树进行交换
二叉树 最优二叉树 树 算法实现 源码 ...建立二叉树算法 求二叉树高度算法的递归模型 求二叉树结点个数算法的递归模型 求二叉树叶子结点个数算法的递归模型 以括号表示法输出二叉树运算算法 以凹入法输出二叉树运算算法
以树为研究对象,实现从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立),并采用递归算法对其进行遍历(先序、中序、后序),将遍历结果打印输出的功能,又增加了选作内容实现了利用非...
代码级报告都有 [问题描述] 建立一棵二叉树,试编程实现二叉树的如下基本操作: 1. 按先序序列构造一棵二叉链表表示的二叉树T; 2. 对这棵二叉树进行遍历:先序、中序、后序以及层次...采用非递归算法实现二叉树遍历。
首先通过建立节点类,然后通过递归算法来建立整个二叉树。在这个过程中,我们可以学习到如何增加节点、删除节点以及查找节点等算法。这些算法对于初学者来说非常有益,能够帮助我们初步理解二叉树的概念和操作。此外...
算法与数据结构——二叉树的建立与遍历.pdf算法与数据结构——二叉树的建立与遍历.pdf