#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语言二叉树建立遍历冒泡排序快速排序等.rar”提供了这些语言的相关案例,帮助学习者深入理解数据结构和算法。以下是针对这些主题的详细解释: 1. **C语言**:C语言是一种强大的系统级编程语言,被...
本文将详细讲解C语言中如何建立和遍历二叉树。 首先,我们需要理解二叉树的基本概念。二叉树是由n(n>=0)个有限节点组成的一个有穷集合,这些节点满足以下条件: 1. 有且仅有一个特定的称为根(root)的节点。 2....
利用c语言实现对二叉树的建立和非递归的中序遍历
在这个场景中,我们将深入探讨如何使用C语言来建立、操作和可视化二叉树。 二叉树由节点构成,每个节点包含一个值以及指向其左子节点和右子节点的指针。二叉树的主要特性包括: 1. **二叉树的类型**:有完全二叉树...
C语言二叉树创建与遍历 二叉树是一种常用的数据结构,它由节点和边组成,每个节点最多有两个子节点,即左子节点和右子节点。在计算机科学中,二叉树广泛应用于各种场景,例如文件系统、数据库索引、编译器设计等。...
C语言数据结构实现二叉树的建立与遍历.cpp
根据给定的信息,本文将详细解释二叉树的遍历方法,包括递归与非递归方式下的前序、中序、后序遍历,并简要介绍层次遍历的概念。 ### 二叉树简介 二叉树是一种常用的数据结构,其中每个节点最多有两个子节点,通常...
当输入合法时,程序将根据输入的值建立二叉树,并进行前序遍历。通过递归和栈的操作,程序可以有效地遍历整个二叉树,遵循先访问根节点、再访问左子树、最后访问右子树的规则。 实验分析显示,递归是构建和遍历...
1. **树的建立**:在C语言中,首先需要定义一个结构体来表示二叉树节点,通常包括一个整数值(用于存储数据)、两个指向左右子节点的指针。然后,可以创建一个函数来接收输入数据并创建新节点。节点插入时,根据二叉...
根据提供的文件信息,我们可以总结出以下关于“数据结构C语言二叉树实验代码”的相关知识点: ### 一、二叉树的基本概念 **二叉树(Binary Tree)**是一种非线性的数据结构,在计算机科学中有着广泛的应用。二叉树中...
在C语言中构建二叉树是一项基础且重要的任务,它涉及到数据结构和算法的理解。二叉树是一种非线性数据结构,每个节点最多有两个子节点,通常分为左子节点和右子节点。在这个实例中,我们将学习如何用C语言创建一个...
c语言几种建立,遍历方式,仅供参考,在vc++6.0环境下可以运行!
本主题将深入探讨如何使用C语言实现一个简单的二叉树,并实现其基本操作,如创建、插入、查找和删除节点。 首先,我们需要定义二叉树节点的数据结构。在C语言中,这可以通过创建一个结构体来完成: ```c typedef ...
在C语言中实现二叉树,需要理解基本的指针操作和数据结构的概念。本文将详细讲解如何用C语言创建、遍历和删除二叉树。 首先,我们需要定义一个结构体来表示二叉树的节点。这个结构体通常包含一个数据域用于存储信息...
- **创建二叉树**:通过输入的节点值,建立二叉树的结构。这可能涉及到动态内存分配和指针操作。 - **输出图形**:可以使用ASCII字符来模拟图形表示,例如,空格代表分支,字符代表节点。 - **计算深度**:从根节点...
C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例...
输入相应元素,用先序创建二叉树(无元素处用“#”) 递归先序遍历二叉树: 递归中序遍历二叉树: 递归后序遍历二叉树: 非递归先序遍历二叉树: 非递归中序遍历二叉树: 非递归后序遍历二叉树: 非递归中序...
基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 ...
简单的二叉树操作,能实现增删改等基本功能,对了解二叉树是很有帮助的