首页 > 代码库 > 小甲鱼数据结构和算法-----二叉树的构建和前序遍历
小甲鱼数据结构和算法-----二叉树的构建和前序遍历
题目要求:建立二叉树并输出每个字符所在的层数。如下图要求输出
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 =http://www.mamicode.com/ 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; }
运行结果截图:
小甲鱼数据结构和算法-----二叉树的构建和前序遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。