您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法之——二叉树的创建及遍历

2017-03-08 19:17 465 查看

C语言二叉树的创建及遍历

创建与遍历都是是采用递归的思想

在遍历的同时还输出了结点所在二叉树的层数

// ctest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#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", 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: