//二叉树的基本操作之—建立二叉排序树并遍历
#include<stdio.h>
#include<string.h>
struct Node{Node *lchild;Node *rchild;int c;
}Tree[110];//静态数组
int loc;// 静态数组中被使用的元素个数
Node *create(){//申请未使用的结点 Tree[loc].lchild=Tree[loc].rchild=NULL;return &Tree[loc+1];
}
void postOrder(Node *T){//后序遍历if(T->lchild!=NULL)postOrder(T->lchild);if(T->rchild!=NULL)postOrder(T->rchild);printf("%d ",T->c);
}
void inOrder(Node *T){//中序遍历if(T->lchild!=NULL)inOrder(T->lchild);printf("%d ",T->c); if(T->rchild!=NULL)inOrder(T->rchild);
}
void preOrder(Node *T){//前序遍历printf("%d ",T->c); if(T->lchild!=NULL)preOrder(T->lchild);if(T->rchild!=NULL)preOrder(T->rchild);
}
Node *Insert(Node *T,int x){//将数字x 插入到排序树中 if(T==NULL){//当前树为空T=create();T->c=x;return T; }else if(x<T->c){//若x小于根结点数值 T->lchild=Insert(T->lchild,x);//插到左子树上else if(x>T->c)T->rchild=Insert(T->rchild,x);//插到右子树上 return T;
}
int main(){int n;while(scanf("%d",&n)!=EOF){loc=0;Node *T=NULL;for(int i=0;i<n;i++){int x;scanf("%d",&x);T=Insert(T,x);//插入到排序树中
     }printf("先序遍历:");preOrder(T);printf("\n");printf("中序遍历:");inOrder(T);printf("\n");printf("后序遍历:");postOrder(T);printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/Elaine-DWL/p/7106044.html

二叉树的基本操作之二叉排序树相关推荐

  1. 二叉树的基本操作(c语言)

    二叉树的基本操作 创建二叉树 二叉树的叶子节点 二叉树的节点总数 二叉树的高度 二叉树的基本遍历方法 创建二叉树 代码: // 创建二叉树,使用# void createBiTree(BiTree&a ...

  2. 二叉树的基本操作及哈夫曼编码/译码系统的实现

    二叉树的基本操作及哈夫曼编码/译码系统的实现 实验目的和要求 掌握二叉树的二叉链表存储表示及遍历操作实现方法. 实现二叉树遍历运算的应用:求二叉树中叶结点个数.结点总数.二叉树的高度,交换二叉树的左右 ...

  3. 树的基本操作代码 c语言,二叉树的基本操作(C语言、源代码)

    二叉树的基本操作(源代码) #include "stdio.h" #include "malloc.h" #define MAX 100 typedef str ...

  4. 数据结构之树和二叉树的应用:二叉排序树(BST)

    树和二叉树的应用:二叉排序树 思维导图: 二叉排序树的定义: 二叉排序树节点结构: 二叉排序树的查找: 二叉排序树的插入: 二叉排序树的构造: 二叉排序树的删除: 二叉排序树先删除再插入某个相同值的节 ...

  5. 手写二叉树的基本操作

    本题题目来源是: https://pta.patest.cn/pta/test/1342/exam/3/question/20490 老实说,写二叉树的基本操作写的我心慌意乱,主要原因是总感觉递归学的 ...

  6. 实现二叉树的基本操作(Java版)

    近期研究了一下二叉树,试着用Java语言实现了二叉树的基本操作,下面分享一下实现代码: package com.sf.test;import java.util.ArrayDeque; import ...

  7. 二叉树的基本操作——数据结构实验报告

    一.实验名称:二叉树 二.实验目的 1)熟练掌握二叉树的存储方式的具体实现过程,实现二叉树的基本操作及运算: 2)进一步巩固指针的用法,栈及队列的基本操作,进一步体会递归算法,学会综合应用. 三.实验 ...

  8. 数据结构实验报告,二叉树的基本操作(C语言)

    数据结构实验报告,二叉树的基本操作(C语言) 作者:命运之光 专栏:数据结构 目录 数据结构实验报告,二叉树的基本操作(C语言) 实验六 二叉树的基本操作 一.需求分析 二.概要设计 三.详细设计 四 ...

  9. 数据结构实验 二叉树的基本操作

    数据结构实验 二叉树的基本操作 实验环境: Visual C++ 实验目的: 1.掌握二叉树的定义: 2.掌握二叉树的基本操作,如二叉树的建立.遍历.结点个数统计.树的深 度计算等. 实验内容: 用递 ...

最新文章

  1. 2017-2018-1 20155204 《信息安全系统设计基础》第十一周学习总结
  2. menu.php,menu.php
  3. rust(28)-具名结构体
  4. 深度学习和目标检测系列教程 11-300:小麦数据集训练Faster-RCNN模型
  5. 崩溃!新浪程序员加班错失 77 万年会大奖
  6. Python新手学习基础之数据类型——字符串的切片截取
  7. mysql binlog 过期_mysql清理过期binlog堵塞数据库
  8. identity 1 1 mysql_identity在mysql中怎么用啊以下代码的错误在哪里
  9. Mac双网卡路由设置实现内外网同时访问
  10. dev、test和staging、prod是什么意思?
  11. 江枫谈淘宝“双十一”事件中的数据库架构优化
  12. python文本文件对比_Python-文件差异对比
  13. 肿瘤浸润免疫细胞量化分析简介
  14. windows操作系统知识最全
  15. 环境搭建--谷粒商城笔记一
  16. 开发错题集(陆续更新...)
  17. python获取图片名称_python提取图像的名字*.jpg到txt文本的方法
  18. RapidScada免费开源Scada组态软件系列教程5-系统进阶
  19. 安装IBM Rational Software Architect V9.0
  20. 开源不只用来玩,“拿来主义”遭唾弃

热门文章

  1. linux Hadoop HDFS NameNode进程重启脚本(linux进程通用)
  2. Maven搭建JavaFX项目
  3. JVM调优:-XX:+UseConcMarkSweepGC 使用CMS垃圾回收器
  4. Java Stack栈类详解
  5. 项目使用encode_Spring Cloud Security:Oauth2使用入门
  6. 创建azure服务器
  7. python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例
  8. python多线程调用携程,进程、线程和携程的通俗解释【刘新宇Python】
  9. php 请求url 返回json,php解析请求url并返回json数据
  10. python中format的用法菜鸟教程-初学者必知的Python中优雅的用法