//二叉树的前序 中序 后序 遍历 和非递归的中序遍历
/*
二叉树的初始化
二叉树的创建
二叉树的测试函数
数据结构体 节点结构体 总的结构体
*/
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1024
#define MAXNODE 100
static int id=0;
typedef struct elementtype//数据结构体创建
{
char name[MAXSIZE];
int id;
}ElementType;
typedef struct treenode//节点结构体的创建
{
ElementType data;
struct treenode*left;//左节点
struct treenode*right;//右节点
}TreeNode;
typedef struct binarytree//二叉链的结构体
{
TreeNode *root;
int length;//长度
int depth;//深度
int diameter;//从叶节点到叶节点的最长路径
}BinaryTree;
void init_binarytree(BinaryTree*tree);//二叉树的初始化
int creat_binarytree(TreeNode*root);//二叉树的创建
void test_binarytree();//测试函数
void preordertrevers(TreeNode*node);//前序遍历
//void inordertravers(TreeNode*node);//中序遍历
void postordertravers(TreeNode*node);//后序遍历
void inordertravers(TreeNode*tp);//中序遍历(非递归实现)
int main()
{
test_binarytree();
return 0;
}
void init_binarytree(BinaryTree*tree)//二叉树的初始化
{
if(tre