一、二叉树的抽象数据类型描述
二、二叉树的顺序存储实现
#include <stdio.h>
/*二叉树的顺序存储*/
/*1.完全二叉树*/
typedef struct TreeNode *EntireBinTree;
typedef BinTree Position;
struct TreeNode{
ElementType Data[MAXSIZE];
}
三、二叉树的链式存储实现
#include <stdio.h>
/*二叉树的链表存储*/
typedef struct TreeNode *BinTree;
typedef BinTree Position;
struct TreeNode{
ElementType Data;
BinTree Left;
BinTree Right;
};
/*1.先序遍历*/
void PreOrderTraversal(BinTree BT)
{
if(BT){
printf("%d", BT->Data);
PreOrderTraversal(BT->Left);
PreOrderTraversal(BT->Right);
}
}
/*2.中序遍历*/
void InOrderTraversal(BinTree BT)
{
if(BT){
InOrderTraversal(BT->Left);
printf("%d", BT->Data);
InOrderTraversal(BT->Right);
}
}
/*3.后序遍历*/
void PostOrderTraversal(BinTree BT)
{
if(BT){
PostOrderTraversal(BT->Left);
PostOrderTraversal(BT->Right);
printf("%d", BT->Data);
}
}
四、二叉树的重要性质