博客
关于我
数据结构 二叉树有遍历的想法
阅读量: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/

你可能感兴趣的文章
mysql操作日志记录查询_如何使用SpringBoot AOP 记录操作日志、异常日志?
查看>>
MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
查看>>
mysql支持表情
查看>>
MySQL支撑百万级流量高并发的网站部署详解
查看>>
MySQL改动rootpassword的多种方法
查看>>
mysql数据分组索引_MYSQL之索引配置方法分类
查看>>
mysql数据取差,mysql屏蔽主外键关联关系
查看>>
MySQL数据和Redis缓存一致性方案详解
查看>>
MySQL数据和Redis缓存一致性方案详解
查看>>
Mysql数据库 InnoDB存储引擎中Master Thread的执行流程
查看>>
MySQL数据库 范式
查看>>
Mysql数据库B-Tree索引
查看>>
mysql数据库io空闲_mysql数据库磁盘io高的排查
查看>>
mysql数据库root密码忘记,查看或修改的解决方法
查看>>
MySQL数据库SQL注入靶场sqli通关实战(附靶场安装包)
查看>>
MYSQL数据库下载安装(Windows版本)
查看>>
MySQL数据库与Informix:能否创建同名表?
查看>>
mysql数据库中的数据如何加密呢?mysql8.0自带新特性
查看>>
MySQL数据库优化
查看>>
MySQL数据库优化总结
查看>>