伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

数据结构 二叉树有遍历的想法

来源:本站原创 浏览:214次 时间:2021-05-09

#include#includeusing 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<lens;i++){if(init_arr[i]!=0){TreeArr[i]=(TreeNode *)malloc(sizeof(TreeNode));TreeArr[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<len;i++){if(TreeArr[i]!=NULL){TreeArr[i]->LChild=TreeArr[2*i+1];TreeArr[i]->RChild=TreeArr[2*i+2];}}return TreeArr[0];}//先序遍历void PreOrder(TreeNode *head){if(head!=NULL){cout<<head->data<<" ";PreOrder(head->LChild);PreOrder(head->RChild);}}//中序遍历void InOrder(TreeNode *head){if(head!=NULL){InOrder(head->LChild);cout<<head->data<<" ";InOrder(head->RChild);}}//后续遍历void PostOrder(TreeNode *head){if(head!=NULL){PostOrder(head->LChild);PostOrder(head->RChild);cout<<head->data<<" ";}}//输出二叉树叶子节点void print_leaf_node(TreeNode *root){if(root!=NULL){if(root->LChild==NULL&&root->RChild==NULL)cout<<root->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-&https://www.3tt.net/?mod=artinfo&aid=3gt;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<<endl;// InOrder(head);//中序遍历// cout<<endl;// PostOrder(head);//后续遍历// cout<<endl;// print_leaf_node(head);//输出叶子节点// cout<<endl;// leaf_num1(head);//输出叶子节点:方法一// cout<<"叶子节点个数:"<<Leaf_count<<endl;// int num=leaf_num2(head);//输出叶子节点:方法二// cout<<"叶子节点个数:"<<num<<endl;// Pre_tree_depth(head,0);// cout<<"二叉树深度:"<<depth<<endl;return 0;}

               

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net