二叉树的三种遍历(C语言写的)
2017-01-10 00:00
197 查看
// 链式二叉树.cpp : 定义控制台应用程序的入口点。 // /*对这个二叉树进行遍历 A / \ B C \ \ D E */ #include "stdafx.h" #include<stdlib.h> typedef char eleType; typedef struct Node { struct Node *RChild; struct Node *LChild; eleType data; }BiNode,*BiTree; BiTree CreateTree(void) { BiTree A,B,C,D,E; A = (BiNode *)malloc(sizeof(BiNode)); B = (BiNode *)malloc(sizeof(BiNode)); C = (BiNode *)malloc(sizeof(BiNode)); D = (BiNode *)malloc(sizeof(BiNode)); E = (BiNode *)malloc(sizeof(BiNode)); A->data = 'A'; B->data = 'B'; C->data = 'C'; D->data = 'D'; E->data = 'E'; A->LChild = B; A->RChild = C; B->LChild = NULL; B->RChild = D; C->LChild = NULL; C->RChild = E; D->LChild = D->RChild = NULL; E->LChild = E->RChild = NULL; return A; } void Visit(eleType data) { printf("%c ",data); } //先序遍历 void PreOrder(BiTree root) { if(root != NULL) { Visit(root->data);//访问根节点 PreOrder(root->LChild); PreOrder(root->RChild); } } //中序遍历 void InOrder(BiTree root) { if(root != NULL) { InOrder(root->LChild); Visit(root->data); InOrder(root->RChild); } } //后序遍历 void PostOrder(BiTree root) { if(root != NULL) { PostOrder(root->LChild); PostOrder(root->RChild); Visit(root->data); } } int _tmain(int argc, _TCHAR* argv[]) { BiTree T; T = CreateTree(); printf("先序遍历:\n"); PreOrder(T); printf("\n"); printf("中序遍历:\n"); InOrder(T); printf("\n"); printf("后序遍历:\n"); PostOrder(T); printf("\n"); return 0; }
相关文章推荐
- [C语言]二叉树(建树、是否相等、三种遍历)
- 二叉树的三种遍历及C语言实现
- C语言基本数据结构之二(二叉树的三种遍历,节点数以及深度算法)
- C语言:二叉树的三种遍历方式
- 二叉树的三种遍历方式(C语言描述)
- c语言数据结构中二叉树的先序、中序、后序三种递归遍历代码
- 二叉树三种遍历的非递归算法
- 二叉树非递归遍历C语言实现
- C语言之二叉树(包括遍历的实现)
- 二叉树的创建和遍历-C语言实现
- c语言实现顺序二叉树的非递归的三种遍历算法
- 二叉树三种遍历的非递归算法
- 二叉树三种遍历六种实现
- 二叉树的性质以及二叉树的遍历(非递归)(c语言)(一)
- 二叉树三种顺序遍历应用
- 【面试算法系列】已知二叉树的前序和中序遍历重建二叉树 - C语言实现
- C语言 数据结构之二叉树 数据结构实验之二叉树的建立与遍历
- 二叉树三种遍历调试运行版
- 二叉树的三种遍历方式的循环和递归的实现方式
- C语言实现中序线索化二叉树并遍历