目录
一、二叉树的建立
二、二叉树的遍历算法
一、二叉树的建立
CreateBitree(Bitree *t){char c;scanf("%c",&c);if(' '==c){*t = NULL;}else{*t=(Bitnode*)malloc(sizeof(Bitnode));(*t)->data = c;CreateBitree(&(*t)->lchild);CreateBitree(&(*t)->rchild);}}
二、二叉树的遍历算法
#include <stdio.h>
#include <stdlib.h>typedef char ElemType;typedef struct Bitnode
{char data;struct Bitnode * lchild ,* rchild;} Bitnode ,*Bitree;//创建一个二叉树CreateBitree(Bitree *t){char c;scanf("%c",&c);if(' '==c){*t = NULL;}else{*t=(Bitnode*)malloc(sizeof(Bitnode));(*t)->data = c;CreateBitree(&(*t)->lchild);CreateBitree(&(*t)->rchild);}} //访问二叉树结点的具体操作
visit(char c,int level)
{printf("%c 位于第%d层\n",c,level);
}
//遍历二叉树
PreOrderTraverse(Bitree t,int level)
{if(t){visit(t->data,level); PreOrderTraverse(t->lchild,level+1);PreOrderTraverse(t->rchild,level+1); }
}int main()
{int level =1;Bitree t =NULL;CreateBitree(&t);PreOrderTraverse(t,level);return 0;
}