/*二叉链表*/
//二叉链表结构储存定义
typedef int DataType;
typedef struct BiNode
{
DataType data;
struct BiNode *lchild,*rchild;
}BiNode,*root; //root为指向二叉链表根节点指针
//前序遍历
void PreOrder(BiNode *root)
{
if(root == NULL)
return; //递归调用的结束条件
else{
printf(root->data); //访问根节点数据域
PreOrder(root->lchild); //前序递归遍历root的左子树
PreOrder(root->rchild); //前序递归遍历root的右子树
}
}
//中序遍历
void InOrder(BiNode *root)
{
if(root == NULL)
return; //递归调用的结束条件
else{
PreOrder(root->lchild); //中序递归遍历root的左子树
printf(root->data); //访问根节点数据域
PreOrder(root->rchild); //中序递归遍历root的右子树
}
}
//后序遍历
void PostOrder(BiNode *root)
{
if(root == NULL)
return; //递归调用的结束条件
else{
PreOrder(root->lchild); //后序递归遍历root的左子树
PreOrder(root->rchild); //后序递归遍历root的右子树
printf(root->data); //访问根节点数据域
}
}
//二叉链表结构储存定义
typedef int DataType;
typedef struct BiNode
{
DataType data;
struct BiNode *lchild,*rchild;
}BiNode,*root; //root为指向二叉链表根节点指针
//前序遍历
void PreOrder(BiNode *root)
{
if(root == NULL)
return; //递归调用的结束条件
else{
printf(root->data); //访问根节点数据域
PreOrder(root->lchild); //前序递归遍历root的左子树
PreOrder(root->rchild); //前序递归遍历root的右子树
}
}
//中序遍历
void InOrder(BiNode *root)
{
if(root == NULL)
return; //递归调用的结束条件
else{
PreOrder(root->lchild); //中序递归遍历root的左子树
printf(root->data); //访问根节点数据域
PreOrder(root->rchild); //中序递归遍历root的右子树
}
}
//后序遍历
void PostOrder(BiNode *root)
{
if(root == NULL)
return; //递归调用的结束条件
else{
PreOrder(root->lchild); //后序递归遍历root的左子树
PreOrder(root->rchild); //后序递归遍历root的右子树
printf(root->data); //访问根节点数据域
}
}