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

你可能感兴趣的文章
Netty工作笔记0037---主从Reactor多线程
查看>>
Netty工作笔记0038---Netty模型--通俗版
查看>>
Netty工作笔记0039---Netty模型--详细版
查看>>
Netty工作笔记0040---Netty入门--服务端1
查看>>
Netty工作笔记0041---Netty入门--服务端2
查看>>
Netty工作笔记0042---Netty入门--编写客户端
查看>>
Netty工作笔记0043---单Reactor多线程模式
查看>>
Netty工作笔记0044---Netty案例源码分析
查看>>
Netty工作笔记0044---scheduledTaskQueue
查看>>
Netty工作笔记0045---Netty模型梳理
查看>>
Netty工作笔记0045---异步模型原理剖析
查看>>
Netty工作笔记0046---TaskQueue自定义任务
查看>>
Netty工作笔记0046---异步模型原理剖析
查看>>
Netty工作笔记0047---Http服务程序实例
查看>>
Netty工作笔记0048---Http服务过滤资源
查看>>
Netty工作笔记0049---阶段内容梳理
查看>>
Netty工作笔记0050---Netty核心模块1
查看>>
Netty工作笔记0051---Netty核心模块2
查看>>
Netty工作笔记0052---Pipeline组件剖析
查看>>
Netty工作笔记0053---Netty核心模块梳理
查看>>