树
遍历
树的节点的机构
typedef struct TreeNode
{
char data;
struct TreeNode* lchild;
struct TreeNode* rchild;
}TreeNode;
前序遍历
根节点 -> 左节点 -> 右节点
/*
#名称# preOrder
#功能# 对二叉树进行前序遍历读值
#参数# T:树的头指针
#返回值# 无
*/
void preOrder(TreeNode* T)
{
if(T == NULL)
{
return;
}
else
{
printf("%c ",T->data);
preOrder(T->lchild);
preOrder(T->rchild);
}
}
中序遍历
左节点 -> 根节点 -> 右节点
/*
#名称# inOrder
#功能# 对二叉树进行中序遍历读值
#参数# T:树的头指针
#返回值# 无
*/
void inOrder(TreeNode* T) {
if(T == NULL)
{
return;
}
else
{
inOrder(T->lchild);
printf("%c ",T->data);
inOrder(T->rchild);
}
}
后序遍历
左节点 -> 右节点 -> 根节点
/*
#名称# postOrder
#功能# 对二叉树进行后序遍历读值
#参数# T:树的头指针
#返回值# 无
*/
void postOrder(TreeNode* T) {
if(T == NULL)
{
return;
}
else
{
postOrder(T->lchild);
postOrder(T->rchild);
printf("%c ",T->data);
}
}