建立二叉树

来源:互联网 发布:淘宝什么是长尾词 编辑:程序博客网 时间:2024/05/22 01:53

题目:建立二叉树并输出每个字符所在的层数。

#include <stdio.h>#include <stdlib.h>typedef char ElemType;typedef struct  BiTNode{ElemType data;struct  BiTNode *lchild,*rchild;}BiTNode,*BiTree;// 按前序输入二叉树中结点的值(一个字符)//#表示空树,构造二叉链表表示二叉树Tvoid CreateBiTree(BiTree *T){ElemType c;scanf("%c",&c);if(c == '#'){*T = NULL;}else{*T =(BiTree)malloc(sizeof(BiTNode));(*T)->data = c;  //生成根结点CreateBiTree(&(*T)->lchild);//构造左子树CreateBiTree(&(*T)->rchild);//构造右子树}}//访问二叉树结点的具体操作void visit(char c,int level){printf("%c 位于第 %d 层\n",c,level);}//遍历二叉树void 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;}


0 0
原创粉丝点击