c_cpp 二叉树的前序,中序和后序遍历
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二叉树的前序,中序和后序遍历相关的知识,希望对你有一定的参考价值。
//二叉树抽象数据类型的头文件
typedef struct BiTreeNode_{
void *data;
struct BiTreeNode_ *left;
struct BiTreeNode_ *right;
}BiTreeNode;
typedef struct BiTree_{
int size;
void (*compare)(const void *key1,const void *key2);
void (*destroy)(void *data);
BiTreeNode* root;
}BiTree;
//遍历二叉树的实现函数
/* 前序遍历 */
int preorder(const BiTreeNode *node){
if(node){
//对结点的处理函数
printNode(node);
if(node->left)
if(perorder(node->left)!=0)
return -1;
if(node->right)
if(perorder(node->right)!=0)
return -1;
return 0;
}
}
/* 中序遍历 */
int inorder(const BiTreeNode *node){
if(node){
if(node->left)
if(inorder(node->left)!=0)
return -1;
//对结点的处理函数
printNode(node);
if(node->right)
if(inorder(node->right)!=0)
return -1;
return 0;
}
}
/* 后序遍历 */
int postorder(const BiTreeNode *node){
if(node){
if(node->left)
if(postorder(node->left)!=0)
return -1;
if(node->right)
if(postorder(node->right)!=0)
return -1;
//对结点的处理函数
printNode(node);
return 0;
}
}
以上是关于c_cpp 二叉树的前序,中序和后序遍历的主要内容,如果未能解决你的问题,请参考以下文章
非递归求二叉树的前序中序和后序遍历
已知二叉树的中序序列和后序序列,怎么求前序序列
中序和后序遍历构造二叉树
二叉树前序中序和后序遍历的非递归实现
已知一个二叉树的先序序列和中序序列,怎么求它的后序序列
[codevs1029]遍历问题