#include<stdio.h>
#include<stdlib.h>
#define CHAR 1 /*字符型1 整型 0 */
#if CHAR
typedef char TElemType;
TElemType Nil=' ';/*字符型以空格符为空*/
#define form "%c" /*输入输出格式为%d*/
#else
typedef int TElemType;
TElemType Nil=0; /*整型以0为空*/
#define form "%d" /*输入输出格式为%d*/
#endif
typedef struct node /*结构类型定义*/
{
TElemType data;
struct node *left;
struct node *right;
}BiTNode,*BiTree;
BiTNode *initBiTree(BiTNode *bt)
{
bt=NULL;
return bt;
}
BiTNode *CreateBiTree(BiTNode *bt)
{/*按先序次序输入二叉树中结点的值(可为字符型或整型)*/
TElemType ch;
scanf(form,&ch);
if(ch==Nil)
bt=NULL;
else
{
bt=(BiTNode*)malloc(sizeof(BiTNode));/*生成根结点*/
if(!bt) exit(0);
bt->data=ch;
bt->left=CreateBiTree(bt->left);/*构造左子树*/
bt->right=CreateBiTree(bt->right);/*构造右子树*/
}
return bt;
}
void PrintTree(BiTNode *bt,int i)
{/*输出二叉树*/
if(bt!=NULL)
{
PrintTree(bt->right,i+5);/*递归调用右子树*/
#if CHAR
if(bt->data!=Nil)
{
printf("%*c\n",i,bt->data);/*i不输出,用来调节输出*/
}
#else
if(bt->data!=Nil)
{
printf("%*d\n",i,bt->data);
}
#endif
PrintTree(bt->left,i+5);
i=i-5;
}
}
int main()
{
int i;
BiTree bt;
bt=initBiTree(bt);
#if CHAR
printf("请先序输入二叉树(如:ab三个空格 a为根节点,b为左子树的二叉树)\n");
#else
printf("请先序输入二叉树(如:1 2 0 0 0 1为根节点,2为左子树的二叉树)\n");
#endif
bt=CreateBiTree(bt);
printf("输入建立的二叉树!!!\n");
PrintTree(bt,5);
}
分享到:
相关推荐
c语言,二叉树的建立和遍历操作。数据结构Bitree
利用c语言实现对二叉树的建立和非递归的中序遍历
C语言 二叉树 C 数据结构 用C语言实现建立一棵二叉树 支持插入,删除结点,画出二叉树
数据结构 二叉树 用C语言创建与遍历 前序 中序遍历 后序遍历
C语言数据结构实现二叉树的建立与遍历.cpp
二叉树递归非递归遍历(递归前中后,非递归前中后,层次遍历)
这是一个关于二叉树的C语言源码,它实现了二叉树的建立和三种遍历方式。
数据结构C语言二叉树实验代码 1.掌握二叉树的特点,以及的二叉链表存储结构。 2.熟练掌握二叉树的各种操作,如建立、遍历、查找和输出。 3.并利用已经掌握的知识进行实际应用。
利用C语言编写的二叉树前序遍历程序,并有实验分析
c语言几种建立,遍历方式,仅供参考,在vc++6.0环境下可以运行!
C语言实现的二叉搜索树,部分功能如下: 1.树的建立、清空、删除 2.先序、中序、后序的递归和非递归输出 3.插入 4.寻找数,寻找最大最小值 5.返回树高度
利用C语言实现二叉树的一些基本功能,例如建立一颗空二叉树,,向其中插入数据,查找数据,删除数据等功能
教你如何用c写二叉树,简单明了,清晰自然
C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例...
c语实现了查找二叉树的建立,插入删除,遍历,前驱,后继等相关操作
输入相应元素,用先序创建二叉树(无元素处用“#”) 递归先序遍历二叉树: 递归中序遍历二叉树: 递归后序遍历二叉树: 非递归先序遍历二叉树: 非递归中序遍历二叉树: 非递归后序遍历二叉树: 非递归中序...
详细的讲解了二叉树用C语音的建立过程。并实现了相应的遍历。删除功能。。
基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 ...
简单的二叉树操作,能实现增删改等基本功能,对了解二叉树是很有帮助的