`
jaychang
  • 浏览: 734610 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

二叉树的创建

 
阅读更多
#include<iostream>

using namespace std;

//二叉树定义
typedef struct BiTreeNode{
  int value;
  BiTreeNode *lChild,*rChild;
}BiTreeNode,*BiTree;

//将结点插入为根节点的孩子结点,如果值小于根节点值,则插入到左子树
void InsertBiTree(BiTree *bst,int value)
{
  //递归结束条件,形成叶子结点
  if(*bst==NULL)                   
  {
     BiTreeNode *s=(BiTreeNode *)malloc(sizeof(BiTreeNode));
     s->value=value;
     s->lChild=NULL;s->rChild=NULL;
     *bst=s;
  }
  //插入到左子树
  else if(value<(*bst)->value)  
  {
     InsertBiTree(&((*bst)->lChild),value);
  }
  //插入到右子树
  else if(value>(*bst)->value)     {
    InsertBiTree(&((*bst)->rChild),value);
  }
}

//创建一棵二叉排序树
void CreateBiTree(BiTree *root)
{
  int value;
  *root=NULL;
  cout<<"请输入一系列正整数,以便构成二叉排序树,以-1结束\n";
  cin>>value;
  while(value!=-1)
  {
     InsertBiTree(root,value);
     cin>>value;
  }
}

//中序遍历二叉排序树,得到从小到大的正整数序列
void VisitBiTree(BiTree *root)
{
  if(*root!=NULL)
  {
     if((*root)->lChild!=NULL)
       VisitBiTree(&((*root)->lChild));
     cout<<(*root)->value<<"\n";
     if((*root)->rChild!=NULL)
       VisitBiTree(&((*root)->rChild));
   }
}

int main()
{
  bool loop=true;
  char cmd;
  while(loop){
     BiTree *root=(BiTree *)malloc(sizeof(BiTreeNode));
     CreateBiTree(root);
     VisitBiTree(root);
     cout<<"继续吗? Y/y \n";
     cin>>cmd;
     loop=(cmd=='y'||cmd=='Y')?true:false;
   }
  return 0;
}
 
分享到:
评论

相关推荐

    数据结构试验3二叉树建立,遍历等

    #### 二叉树创建与遍历 **创建二叉树**:根据给定的先序遍历序列(子树为空时用’#’表示),可以构建出对应的二叉树。例如,输入序列“AB##D##CE##”表示一个包含A、B、C、D、E五个节点的二叉树。 ```cpp void ...

    二叉树创建及其基本操作C++.zip

    本资源包“二叉树创建及其基本操作C++.zip”提供了关于二叉树创建和基本操作的实例,包括节点的增加、删除、查找和修改,以及线索二叉树的概念。下面将详细阐述这些知识点。 二叉树是一种非线性数据结构,每个节点...

    二叉树建立及遍历算法实现

    建立二叉树,实现二叉树的先序、中序、后序的递归遍历算法,输出遍历结果。 实现二叉树的先序、中序、后序和层次遍历的非递归算法,输出遍历结果。

    C语言二叉树创建与遍历

    C语言二叉树创建与遍历 二叉树是一种常用的数据结构,它由节点和边组成,每个节点最多有两个子节点,即左子节点和右子节点。在计算机科学中,二叉树广泛应用于各种场景,例如文件系统、数据库索引、编译器设计等。...

    二叉树创建及遍历算法

    二叉树创建及遍历算法 本文主要介绍二叉树的创建及遍历算法,包括递归和非递归两种实现方式。同时,文章还提供了详细的代码实现和解释,以帮助读者更好地理解和掌握二叉树的创建和遍历算法。 一、、二叉树概述 ...

    数据结构课程设计实例二叉树建立.rar

    数据结构课程设计实例二叉树建立 数据结构课程设计实例二叉树建立 数据结构课程设计实例二叉树建立 数据结构课程设计实例二叉树建立 数据结构课程设计实例二叉树建立 数据结构课程设计实例二叉树建立 数据结构课程...

    二叉树建立和查找 数据结构

    1. **创建二叉树**:创建二叉树通常从根节点开始,然后递归地添加左右子节点。节点的添加顺序决定了树的形状,例如满二叉树、完全二叉树和非完全二叉树。在编程实现时,可以使用类来表示节点,包含节点值、左子节点...

    二叉树建立 二叉树基本算法的实现

    (1)输入字符序列,建立二叉链表。 (2)先序、中序、后序遍历二叉树:递归算法。 (3)中序遍历二叉树:非递归算法(最好也能实现先序,后序非递归算法)。 (4)求二叉树的高度 。 (5)求二叉树的叶子个数。 ...

    VC二叉树建立以及遍历

    在“VC二叉树建立以及遍历”的主题中,首先我们要理解如何在VC环境下构建二叉树。二叉树的构建通常有两种方式:一是动态构建,即在运行时根据输入的数据创建;二是静态构建,通过预先定义的数据结构初始化。手动输入...

    二叉树创建

    关于二叉树的一些操作,内容简单易懂,关于二叉树的创建遍历等等问题,适合新手

    二叉树创建前序中序后序遍历

    根据给定的文件信息,我们可以总结出以下关于二叉树创建及遍历的相关知识点: ### 一、二叉树的基本概念 二叉树是一种非线性的数据结构,它由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。...

    数据结构程序二叉树的建立

    在二叉树创建完成后,程序将输出层序遍历和中序遍历的结果,让用户能够直观地看到遍历的效果。 通过本程序的实践,我们可以清楚地了解二叉树的建立过程以及如何通过递归方法构建二叉链表,同时掌握层序遍历和中序...

    C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等.zip

    C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例...

    二叉树创建和遍历

    链表实现二叉树创建和遍历,三种遍历方式实现,二叉树

    10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等

    10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 10个数据结构课程设计实例...

    基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等

    基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 ...

    二叉树建立以及递归、非递归遍历

    在C语言中建立二叉树,我们需要定义一个结构体来表示节点,如下所示: ```c typedef struct TreeNode { int data; // 数据域 struct TreeNode* left; // 指向左子节点的指针 struct TreeNode* right; // 指向右...

    二叉树创建遍历及线索化

    二叉树创建遍历及线索化,二叉树的创建存储以及先序中序后序遍历,图形树输出

    二叉树创建与各种遍历

    1.先序创建 2.先序遍历递归算法 3.中序遍历递归算法 4.后序遍历递归算法 5.先序遍历非递归算法 6.后序遍历非递归算法 7.中序遍历非递归算法 8.二叉树求深度 9.左孩子右兄弟链表创建树并求深度

    二叉树创建与遍历_二叉树创建与遍历_

    在给定的文件列表中,`源.cpp`可能包含了以上提到的二叉树创建和遍历的代码实现,而`Bitree.h`可能定义了二叉树节点的数据结构。`二叉树创建与遍历.vcxproj`等相关文件是Visual Studio项目文件,用于管理和编译源...

Global site tag (gtag.js) - Google Analytics