本博客前面文章已对树与二叉树有过简单的介绍,本文主要是重点介绍有关二叉树的一些具体操作与应用
阅读本文前,可以先参考本博客 各种基本算法实现小结(三)—— 树与二叉树 和 各种基本算法实现小结(二)—— 堆 栈
二叉树
深度层数、叶子数、节点数和广度优先算法
以及树的先序、中序、后序的递归与非递归(深度优先)
测试环境:VS2008(C)
#include "stdafx.h"#include <stdlib.h>#include <malloc.h>#define DataType charint d_tree=0; /* tree's depth */int l_tree=0; /* tree's leaf */int n_tree=0; /* tree's node *//**************************************//******** 树的结构定义 ********//**************************************/struct _tree{ DataType data; struct _tree *lchild; struct _tree *rchild;};typedef struct _tree tree, *ptree;/**************************************//******** 栈的结构定义 ********//**************************************/struct _node{ ptree pt; struct _node *next;};typedef struct _node node, *pnode;struct _stack{ int size; pnode ptop;};typedef struct _stack stack, *pstack;/**************************************//******** 堆的结构定义 ********//***********