数据结构ABDH##I##E##CF##G##的二叉树图像

一、定义一个二叉树节点

一个②叉数节点包含数据域、指向二叉树左右孩子的指针。

先序遍历二叉树的操作定义如下:

若二叉树为空则空操作;否则

(2)先序遍历左孓树。

(3)先序遍历右子树

 1 //前序遍历二叉树(递归)
 

中序遍历二叉树的操作定义如下:

若二叉树为空,则空操作;否则

(1)中序遍历左子树

(3)中序遍历右子树。

 1 //中序遍历二叉树(递归)
 

若二叉树为空则空操作;否则

(1)后序遍历左子树。

(2)后序遍历右子树

 1 //后序遍历二叉樹(递归)
 

层次遍历二叉树要用到队列来实现,我这里用c++中的STL中的queue容器来实现(记得头文件#include<queue&t;)

 1 //层次遍历二叉树
 

前序遍历二叉树要用到栈来实現,我这里用c++中的STL中的stack容器来实现(记得头文件#include<stack&t;)

(1)初始化一个空栈S,指针p指向根节点

(2)当p非空或者栈S非空,循环执行以操作:

   ●如果p为空这弹出栈顶元素,将p指向该结点的右孩子

非递归中序遍历二叉树也要用到栈来实现,我这里用c++中的STL中的stack容器来实现

(1)初始化一个空栈S,指针p指向根节点

(2)当p非空或者栈S非空,循环执行以操作:

    ●如果p为空这弹出栈顶元素并访问,将p指向该结点嘚右孩子

7 //二叉树节点的定义 15 //创建一颗二叉树,y约定用户遵照前序遍历的方式输入数据 34 //访问二叉树的具体节点的具体操作 42 //前序遍历二叉树(递歸) 53 //中序遍历二叉树(递归) 65 //后序遍历二叉树(递归) 78

注:在递归遍历中我写了一个输出函数(visit),你可以不用写直接输出结点(记得把递归遍历中嘚第二个参数level删除)

我要回帖

更多关于 E是多少G 的文章

 

随机推荐