我的第一颗二叉链树的笔记
前序建立二叉树,三种遍历方式,及测试
#include<stdio.h> #include<stdlib.h> typedef struct node { int data; struct node *lchild,*rchild; }NODE; void create(NODE **T) { int tmp; scanf("%d",&tmp); if(tmp==0) { *T=NULL; } else { *T=(NODE*)malloc(sizeof(NODE)); (*T)->data=tmp; create(&(*T)->lchild); create(&(*T)->rchild); } } ///前序遍历 void preShow(NODE *T) { if(T==NULL) { return ; } printf("%d",T->data); preShow(T->lchild); preShow(T->rchild); } ///中序遍历 void midShow(NODE *T) { if(T==NULL) { return ; } preShow(T->lchild); printf("%d",T->data); preShow(T->rchild); } ///后序遍历 void lastShow(NODE *T) { if(T==NULL) { return ; } preShow(T->lchild); preShow(T->rchild); printf("%d",T->data); } int main() { NODE *tree=NULL; create(&tree); preShow(tree); puts(""); midShow(tree); puts(""); lastShow(tree); puts(""); return 0; }