博客
关于我
数据结构 二叉树有遍历的想法
阅读量:502 次
发布时间:2019-03-07

本文共 1860 字,大约阅读时间需要 6 分钟。

#include
#include
using namespace std;#define LEN 30typedef struct TreeNode{ int data; TreeNode *LChild;//左节点 TreeNode *RChild;//右节点}TreeNode;//按照从左到右,从上到下给二叉树赋值TreeNode *init(int *init_arr,int lens){ TreeNode *TreeArr[LEN]; //先形成一个数组 int i; for(i=0;i
data=init_arr[i]; TreeArr[i]->LChild=NULL; TreeArr[i]->RChild=NULL; }else TreeArr[i]=NULL; } //再把他们串成链表 int len=lens/2; for(i=0;i
LChild=TreeArr[2*i+1]; TreeArr[i]->RChild=TreeArr[2*i+2]; } } return TreeArr[0];}//先序遍历void PreOrder(TreeNode *head){ if(head!=NULL){ cout<
data<<" "; PreOrder(head->LChild); PreOrder(head->RChild); }}//中序遍历void InOrder(TreeNode *head){ if(head!=NULL){ InOrder(head->LChild); cout<
data<<" "; InOrder(head->RChild); }}//后续遍历void PostOrder(TreeNode *head){ if(head!=NULL){ PostOrder(head->LChild); PostOrder(head->RChild); cout<
data<<" "; }}//输出二叉树叶子节点void print_leaf_node(TreeNode *root){ if(root!=NULL){ if(root->LChild==NULL&&root->RChild==NULL)cout<
data<<" "; print_leaf_node(root->LChild); print_leaf_node(root->RChild); }}//统计叶子节点个数:方法一int Leaf_count=0;void leaf_num1(TreeNode *root){ if(root!=NULL){ leaf_num1(root->LChild); leaf_num1(root->RChild); if(root->LChild==NULL&&root->RChild==NULL)Leaf_count++; }}//统计叶子节点个数:方法二int leaf_num2(TreeNode *root){ if(root==NULL){ return 0; }else if(root->LChild==NULL&&root->RChild==NULL){ return 1; }else{ return (leaf_num2(root->LChild)+leaf_num2(root->RChild)); }}//求二叉树高度:先序遍历int depth=0;void Pre_tree_depth(TreeNode * head, int h){ if(head!=NULL){ if(h>depth)depth=h; Pre_tree_depth(head->LChild,h+1); Pre_tree_depth(head->RChild,h+1); }}int main(int argc, char const *argv[]){ TreeNode *head=(TreeNode *)malloc(sizeof(TreeNode)); int init_arr[]={ 1,2,3,0,4,0,5};//0表示 head=init(init_arr,7);//传数组跟数组的长度 PreOrder(head);//先序遍历输出 cout<

转载地址:http://ncccz.baihongyu.com/

你可能感兴趣的文章
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>