树的基本操作代码 c语言,二叉树的基本操作(C语言、源代码)
二叉树的基本操作(源代码)
#include "stdio.h"
#include "malloc.h"
#define MAX 100
typedef struct node{
int date;
struct node *lchild,*rchild;
}bitnode,*bitree;
bitree createbitree(bitree bt){
int m;
printf("m=");
scanf("%d",&m);
if(m==-1)
bt=NULL;
else{
bt=(bitnode *)malloc(sizeof(bitnode));
bt->date=m;
bt->lchild=createbitree(bt->lchild);
bt->rchild=createbitree(bt->rchild);
}
return bt;
}//树的建立
void leveltraverse(bitree bt){
bitree queue[MAX],p=bt;
int rear=0,front=0;
if(p!=NULL){
queue[++rear]=p;
while(frontdate);
if(p->lchild!=NULL)
queue[++rear]=p->lchild;
if(p->rchild!=NULL)
queue[++rear]=p->rchild;
}
}
}//树的层次遍历
void preordertraverse(bitree bt){
if(bt!=NULL){
printf("%d\t",bt->date);
preordertraverse(bt->lchild);
preordertraverse(bt->rchild);
}
}//树的先序遍历
void inordertraverse(bitree bt){
if(bt!=NULL){
inordertraverse(bt->lchild);
printf("%d\t",bt->date);
inordertraverse(bt->rchild);
}
}//树的中序遍历
void postordertraverse(bitree bt){
if(bt!=NULL){
postordertraverse(bt->lchild);
postordertraverse(bt->rchild);
printf("%d\t",bt->date);
}
}//树的后序遍历
int bitreedepth(bitree bt){
int h,lh,rh;
if(bt==NULL)
h=0;
else{
lh=bitreedepth(bt->lchild);
rh=bitreedepth(bt->rchild);
if(lh>=rh)
h=lh+1;
else
h=rh+1;
}
return h;
}//求树的深度
int bitreeleaf(bitree bt){
int m=0;
if(!bt)
return 0;
else if(bt->lchild==NULL&&bt->rchild==NULL)
return 1;
m+=bitreeleaf(bt->lchild)+bitreeleaf(bt->rchild);
return m;
}//求树的叶子树
int countbitreenode(bitree bt){
if(!bt)
return 0;
else
return countbitreenode(bt->lchild)+countbitreenode(bt->rchild)+1;
}//求树的节点数
void OperateBitree(bitree bt){
printf("\n");
printf("The level traversal of the bitree is:\n\t");
leveltraverse(bt);
printf("\n\n");
printf("The preorder traversal of the bitree is:\n\t");
preordertraverse(bt);
printf("\n\n");
printf("The inorder traversal of the bitree is:\n\t");
inordertraverse(bt);
printf("\n\n");
printf("The postorder traversal of the bitree is:\n\t");
postordertraverse(bt);
printf("\n\n");
printf("The number of the bitreenode is %d.\n",countbitreenode(bt));
printf("The depth of the bitree is %d.\n",bitreedepth(bt));
printf("The number of the leaves of the bitree is %d.\n\n",bitreeleaf(bt));
}//树的基本操作
void main(){
bitree bt;
bt=createbitree(bt);
OperateBitree(bt);
}
树的基本操作代码 c语言,二叉树的基本操作(C语言、源代码)相关推荐
- C语言二叉树的基本操作(超全)
二叉树作为数据结构其实是一个挺有意思的结构,可以有多种应用 我们直接来看一下二叉树的代码: #include<stdlib.h> #include<stdio.h> #incl ...
- c语言二叉树图形输出,C语言数据结构树状输出二叉树,谁能给详细的解释一下...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void TranslevelPrint(Bitree bt) { struct node { Bitree vec[MAXLEN]; //存放树结点 i ...
- C语言二叉树字符统计,C语言实现二叉树-利用二叉树统计单词数目
昨天刚参加了腾讯2015年在线模拟考: 四道大题的第一题就是单词统计程序的设计思想: 为了记住这一天,我打算今天通过代码实现一下: 我将用到的核心数据结构是二叉树: (要是想了解简单二叉树的实现,可以 ...
- c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)
C语言实现二叉树的创建以及遍历 #include typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNo ...
- C语言二叉树前序遍历(附完整源码)
C语言二叉树前序遍历 C语言二叉树前序遍历完整源码(定义,实现,main函数测试) C语言二叉树前序遍历完整源码(定义,实现,main函数测试) #include <iostream>st ...
- 数据结构实验报告,二叉树的基本操作(C语言)
数据结构实验报告,二叉树的基本操作(C语言) 作者:命运之光 专栏:数据结构 目录 数据结构实验报告,二叉树的基本操作(C语言) 实验六 二叉树的基本操作 一.需求分析 二.概要设计 三.详细设计 四 ...
- 二叉树的基本操作(c语言)
二叉树的基本操作 创建二叉树 二叉树的叶子节点 二叉树的节点总数 二叉树的高度 二叉树的基本遍历方法 创建二叉树 代码: // 创建二叉树,使用# void createBiTree(BiTree&a ...
- 实现二叉树的基本操作(Java版)
近期研究了一下二叉树,试着用Java语言实现了二叉树的基本操作,下面分享一下实现代码: package com.sf.test;import java.util.ArrayDeque; import ...
- [ 数据结构-C语言 ] 二叉树--初阶 大总结~~
今天要和大家一起步入一个新的数据结构--二叉树.在学习了解二叉树之前我们先来了解什么是树. 以下是本篇的主要内容及目录 目录 1.树的概念及其结构 1.1树的概念 1.2树的相关概念(重点*) 1.3 ...
最新文章
- java控制台输入的数据存放在数据库表中_JDBC完成修改(使用控制台输入)
- VMWare ubuntu虚拟机异常关闭打开报错:该虚拟机似乎正在使用中(下班虚拟机最好关闭,免得又异常关闭导致问题)(千万别在虚拟机下win+L锁屏,解锁后就打不开虚拟机了)
- 7-9 输出大写英文字母 (15 分)
- 用keil编译的时候遇到不能编译也不能build
- kettle 下载安装 使用
- vue + ElementUI如何动态删除表格当前行内容
- Android页面引导蒙版(浮层)库
- 密码编码学与网络安全(第五版)答案
- html css下拉菜单居中,css如何设置下拉菜单?
- MyBatis详解(一):入门程序
- c语言rand生成1 100随机数,c语言生成1~100随机数
- 如何判断用户是否关注微信订阅号,亲测实战步骤
- 深度长文:我对CQRS/EventSourcing架构的思考
- XDOJ 综合题 数字分解排序
- RatingBar基本使用
- 解决CSS中display: inline-block有缝隙问题
- ucos+ucgui(2)
- Oracle存储过程书写规范和技巧
- 中国黑客传说:周景平——我是超级黑
- 操作系统 | PV操作练习题汇总(一)
热门文章
- android程序更改pdf文件格式,Android根据pdf模板生成pdf文件
- RestTemplate发送请求并携带header信息
- matlab knnsearchidx,matlab查找最临近搜索knnsearch
- RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc
- python 在线预览文件_用Python PyQt写一个在线预览图片的GUI
- html json to table,javascript - HTML - Convert json to table - Stack Overflow
- mysql port range_MySQL 数据库常见调优方法及参数设置_MySQL
- ubuntu下安装jdk
- 五个案例简述Web设计原则:通用一致
- 互联网的发展背离了其初衷吗?