标签:建立 用户 class ges 技术 数据 数据结构 题目 can
题目要求:建立二叉树并输出每个字符所在的层数。如下图要求输出
A 在第一层
B、C 在第二层
D、E在第三层
代码如下:
#include <stdio.h> #include <stdlib.h> typedef struct BiTNode { char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; // 创建一棵二叉树,约定用户遵照前序遍历的方式输入数据 void 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); } } 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; T = NULL; CreateBiTree(&T); PreOrderTraverse(T,level); return 0; }
运行结果截图:
标签:建立 用户 class ges 技术 数据 数据结构 题目 can
原文地址:http://www.cnblogs.com/ncuhwxiong/p/7226460.html