C语言实现二叉树排序
一、代码
#include<stdio.h> #include<stdlib.h> #define N 10 int a[N]={3,2,5,8,4,7,6,9,1,10};typedef struct tree {int data;struct tree *lchild;struct tree *rchild; }BitTree;void Sort_Tree(BitTree *bt,int key) //在二叉排序树中插入查找关键字key; {BitTree *parent;BitTree *p=(BitTree *)malloc(sizeof(BitTree));p->data=key; //保存结点数据;p->lchild=p->rchild=NULL; //左右子树置空;BitTree *head=bt;while(head) //查找关键字所在的位置;{parent=head;if(key<head->data) //如果关键字小于结点的数据;head=head->lchild; //在左子树上查找;else //若关键字大于结点的数据head=head->rchild; //再右子树上查找;}//判断添加到左子树还是右子树;if(key<parent->data) //小于父结点;parent->lchild=p; //添加到左子树;else //大于父结点;parent->rchild=p; //添加到右子树; }//中序遍历输出二叉排序树; void InOrder(BitTree *bt) {if(bt) //树不为空,则执行如下操作;{InOrder(bt->lchild); //中序遍历左子树;printf("%d ",bt->data); //输出结点数据;InOrder(bt->rchild); //中序遍历右子树;} }int main(void) {int i;BitTree *bt; //保存二叉排序树根结点;printf("原数据:\n");for(i=0;i<N;i++)printf("%d ",a[i]);printf("\n\n");//初始化根结点;bt=(BitTree *)malloc(sizeof(BitTree));bt->data=a[0];bt->lchild=bt->rchild=NULL;//将其他数组数据进行排序;for(i=1;i<N;i++)Sort_Tree(bt,a[i]);printf("遍历二叉排序树:\n");InOrder(bt);printf("\n");return 0; }
二、结果
C语言实现二叉树排序相关推荐
- 二叉树排序——c语言实现
文章目录 本文二叉树排序实现的功能 二叉排序树的定义 二叉排序树样例图解 c语言代码 本文二叉树排序实现的功能 输入一串数字,输出从小到大的排序. 二叉排序树的定义 二叉排序树要么是空二叉树,要么具有 ...
- C语言:利用排序二叉树进行排序
C语言:利用排序二叉树进行排序 标签: C语言 二叉树 排序 by 小威威 1.引入 排序二叉树属于二叉树的一种,其主要特色在于构建二叉树与输出二叉树.二叉树的子树很有特点:左子树小于根结点,根结点小 ...
- C语言实现 二叉树 对任意类型数据的遍历、叶子节点统计、树高计算
本文主要实现C语言对二叉树的构造,可存储所有类型数据,实现数据域的遍历,本文主要介绍递归的遍历方法,含详细图文:以及树高.叶子节点的计算等. 1 二叉树构造 typedef struct Tree / ...
- R语言dplyr包排序及序号函数实战(row_number、ntile、min_rank、dense_rank、percent_rank、cume_dist)
R语言dplyr包排序及序号函数实战(row_number.ntile.min_rank.dense_rank.percent_rank.cume_dist) 目录 R语言dplyr包排序及序号函数实 ...
- php二叉树 排列,PHP 如何实现用户二叉树排序需求
用户二叉树排序需求 用户注册,输入以下注册信息: - 电子邮箱 - 密码 - 确认密码 - 推荐人ID(此ID可以在数据库中手动增加一个) 每注册进一个新用户,该用户就进入到排序中 排序规则 新增用户 ...
- Algorithm:C++语言实现之内排序、外排序相关算法(插入排序 、锦标赛排序、归并排序)
Algorithm:C++语言实现之内排序.外排序相关算法(插入排序 .锦标赛排序.归并排序) 目录 一.内排序 1.插入排序 2.锦标赛排序 3.归并排序 二.外排序 1.过程 一.内排序 1.插入 ...
- C语言求二叉树的垂直总和(附完整源码)
C语言求二叉树的垂直总和 C语言求二叉树的垂直总和完整源码(定义,实现,main函数测试) C语言求二叉树的垂直总和完整源码(定义,实现,main函数测试) #include <iostream ...
- C语言判断二叉树是否为二叉搜索树(附完整源码)
C语言判断二叉树是否为二叉搜索树 C语言判断二叉树是否为二叉搜索树完整源码(定义,实现,main函数测试) C语言判断二叉树是否为二叉搜索树完整源码(定义,实现,main函数测试) #include ...
- C语言反转二叉树的递归和迭代解决方案(附完整源码)
C语言反转二叉树的递归和迭代解决方案 C语言反转二叉树的递归和迭代解决方案完整源码(定义,实现,main函数测试) C语言反转二叉树的递归和迭代解决方案完整源码(定义,实现,main函数测试) #in ...
最新文章
- 【052】测试数据引发的骚乱
- OEL7.2下Oracle11.2.0.4RAC部署
- linux 添加网关 多张,linux – 更改默认网关,多个NIC
- zabbix对网站web监控(配置模板)
- 技术实践:教你用Python搭建gRPC服务
- 基于JAVA+Servlet+JSP+MYSQL的客户充值缴费管理系统
- IMU预积分公式推到及代码解析
- Atitit 财政赤字解决方案
- linux上的c语言开发环境搭建,c语言开发环境(c语言开发环境搭建)
- H.264协议:Annex B格式和AVCC格式
- 关于ubuntu开机菜单栏和任务栏不见了的有效解决方法
- 技校自我鉴定范文计算机600字,技校自我鉴定100字范文18篇
- Githut Token (hidden): Githut 安装验证
- 自考《数据库系统原理》(3)之关系模式设计理论
- linux刻录光盘空间不足,解决Linux下刻录光盘问题
- Gos ——内存管理系统
- 85D - Sum of Medians
- 如何选择数据拆分方法:不同数据拆分方法的优缺点及原因
- sniper安装配置
- 如何让google,baidu,Yahoo收录你的网站