先序遍历——根左右——前缀表达式
中序遍历——左根右——中缀表达式
后序遍历——左右根——后缀表达式
二叉树的遍历(手算)
先序遍历代码
struct ElemType
{int value;
};
//二叉树的结点(链式存储)
typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchild, * rchild;//左、右孩子指针
}BiTNode,*BiTree;
void visit(BiTree T) {if (T != NULL) { // 确保结点非空printf("%d ", T->data.value); // 打印结点的value}
}
//先序遍历
void PreOrder(BiTree T) {if (T != NULL) {visit(T);//访问根结点PreOrder(T->lchild);//递归遍历左子树PreOrder(T->rchild);//递归遍历右子树}
}
中序遍历代码
struct ElemType
{int value;
};
//二叉树的结点(链式存储)
typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchild, * rchild;//左、右孩子指针
}BiTNode,*BiTree;
void visit(BiTree T) {if (T != NULL) { // 确保结点非空printf("%d ", T->data.value); // 打印结点的value}
}
//先序遍历
void PreOrder(BiTree T) {if (T != NULL) {PreOrder(T->lchild);//递归遍历左子树visit(T);//访问根结点PreOrder(T->rchild);//递归遍历右子树}
}
后序遍历代码
struct ElemType
{int value;
};
//二叉树的结点(链式存储)
typedef struct BiTNode {ElemType data;//数据域struct BiTNode *lchild, * rchild;//左、右孩子指针
}BiTNode,*BiTree;
void visit(BiTree T) {if (T != NULL) { // 确保结点非空printf("%d ", T->data.value); // 打印结点的value}
}
//先序遍历
void PreOrder(BiTree T) {if (T != NULL) {PreOrder(T->lchild);//递归遍历左子树PreOrder(T->rchild);//递归遍历右子树visit(T);//访问根结点}
}