#include<stdio.h> #include<stdlib.h> //定义 typedef struct BiTNode{ int data; //数据域 struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //创建新节点 bool createNode(BiTree &T,int value){ T=(BiTNode *)malloc(sizeof(BiTNode)); if(T==NULL) return false; T->data=value; T->lchild=NULL; T->rchild=NULL; return true; } //访问结点 void visit(BiTNode *T){ int x=T->data; printf("%d ",x); } //先序遍历 void PreOrder(BiTNode *T){ if(T!=NULL){ visit(T); PreOrder(T->lchild); PreOrder(T->rchild); } } //中序遍历 void InOrder(BiTNode *T){ if(T!=NULL){ InOrder(T->lchild); visit(T); InOrder(T->rchild); } } //后序遍历 void PostOrder(BiTNode *T){ if(T!=NULL){ PostOrder(T->lchild); PostOrder(T->rchild); visit(T); } } int main(){ BiTree T; createNode(T, 1); createNode(T->lchild, 2); createNode(T->rchild, 3); createNode(T->lchild->lchild, 4); createNode(T->lchild->rchild, 5); // 先序遍历二叉树 printf("先序遍历结果为:"); PreOrder(T); // 中序遍历二叉树 printf("中序遍历结果为:"); InOrder(T); // 后序遍历二叉树 printf("后序遍历结果为:"); PostOrder(T); return 0; }
运行结果:
标签:lchild,遍历,createNode,BiTNode,二叉树,rchild,NULL From: https://www.cnblogs.com/zyj3955/p/17690221.html