C语言实现二叉树的遍历
2012-09-27 13:23
411 查看
#include <stdio.h> #include <stdlib.h> typedef char TElemType ; typedef struct TNode { TElemType data; struct TNode *lchild , *rchild; }BiTNode , *BiTree; int creatTree(BiTree *root) //递归创建二叉树 { char ch; scanf("%c" , &ch); if(ch == '#') { (*root) = NULL; } else { if(!((*root) = (BiTNode *)malloc(sizeof(BiTNode)))) { printf("malloc error!\n"); return -1; } (*root)->data = ch; creatTree(&((*root)->lchild)); creatTree(&((*root)->rchild)); } return 0; } void preOrderTraverse(BiTree tree) //递归前序遍历 { if(tree) { printf("%c", tree->data); preOrderTraverse(tree->lchild); preOrderTraverse(tree->rchild); } return ; } void inOrderTraverse(BiTree tree) //递归中序遍历 { if(tree) { inOrderTraverse(tree->lchild); printf("%c", tree->data); inOrderTraverse(tree->rchild); } return ; } void lastOrderTraverse(BiTree tree) //递归后序遍历 { if(tree) { lastOrderTraverse(tree->lchild); lastOrderTraverse(tree->rchild); printf("%c", tree->data); } return ; } int main(int argc , char **argv) { BiTree tree ; creatTree(&tree); printf("\n*********先序遍历*********\n"); preOrderTraverse(tree); printf("\n*********中序遍历*********\n"); inOrderTraverse(tree); printf("\n*********后序遍历*********\n"); lastOrderTraverse(tree); printf("\n"); return 0; }
本文出自 “Record” 博客,请务必保留此出处http://mjrao.blog.51cto.com/6086668/1008061
相关文章推荐
- 遍历二叉树的递归算法与非递归算法以及C语言实现
- c语言实现二叉树的先序遍历,中序遍历,后序遍历
- 数据结构 c语言实现 二叉树的层次遍历(linux下实现)
- C语言实现二叉树的建立、遍历以及表达式的计算
- 二叉树创建、遍历、求深度--C语言实现
- 用c语言编程实现二叉树的建立和遍历二叉树
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- C语言实现二叉树并且实现二叉树的遍历
- C语言实现二叉树的递归遍历和非递归遍历
- C语言实现二叉树的各种遍历及求解深度
- C语言实现二叉树的遍历
- 层序遍历二叉树(不借助vector或deque,用C语言实现)
- 二叉树非递归遍历C语言实现
- 用c语言创建一颗二叉树,用递归方法实现对其进行先序、中序和后序遍历的操作。
- C语言实现二叉树的递归遍历与非递归遍历
- 二叉树前序、中序、后序非递归遍历实现(C语言)
- 二叉树层次遍历(C语言实现)
- 求二叉树的后序遍历 C语言 数组实现
- 二叉树的创建与遍历(C语言实现)
- 【算法】二叉树的递归遍历C语言实现