二叉树(一)利用数组初始化二叉树,并实现前序中序后序遍历
来源:互联网 发布:淘宝店铺2心要多少单 编辑:程序博客网 时间:2024/05/24 01:35
这是一个利用数组来初始化一个二叉树,初始化的树是一个完全二叉树,并利用三种遍历算法实现遍历
#include <iostream>using namespace std;#define N 20int Number[N];//根据数组建立一个二叉堆typedef struct BiTreeNode{int val;struct BiTreeNode *left;struct BiTreeNode *right;}Node;void creBiTreeNode(int *p,int num,Node *cur,int curIndex);Node* creBiTree(int *p,int num);void travBiTree0(Node *head);//前序void travBiTree1(Node *head);//中序void travBiTree2(Node *head);//后序int main(){for(int i=0;i<N;i++)Number[i]=i;Node* head=creBiTree(Number,N);travBiTree0(head);cout<<endl;travBiTree1(head);cout<<endl;travBiTree2(head);cout<<endl;getchar();};void creBiTreeNode(int *p,int num,Node *cur,int curIndex){if (p==NULL||num<=0||cur==NULL||curIndex>=num||curIndex<0){return ;}int last=num-1;if (2*curIndex+1<=last){cur->left=new Node;cur->left->val=p[2*curIndex+1];}else{cur->left=NULL;}if (2*curIndex+2<=last){cur->right=new Node;cur->right->val=p[2*curIndex+2];}else{cur->right=NULL;}creBiTreeNode(p, num,cur->left,2*curIndex+1);creBiTreeNode(p, num,cur->right,2*curIndex+2);}Node* creBiTree(int *p,int num){if (p==NULL||num<=0){return NULL;}Node *head=new Node;head->val=p[0];creBiTreeNode(p, num,head,0);return head;}void travBiTree0(Node *head) //前序遍历 中左右{if (head==NULL){return;}cout<<head->val<<"\t";travBiTree0(head->left);travBiTree0(head->right);}void travBiTree1(Node *head) //中序遍历 左中右{if (head==NULL){return;}travBiTree1(head->left);cout<<head->val<<"\t";travBiTree1(head->right);}void travBiTree2(Node *head) //后序遍历 左右中{if (head==NULL){return;}travBiTree2(head->left);travBiTree2(head->right);cout<<head->val<<"\t";}
0 0
- 二叉树(一)利用数组初始化二叉树,并实现前序中序后序遍历
- 利用Lua实现二叉查找树并进行各种遍历
- 数组转化为二叉树并实现对其遍历
- C++实现二叉树(初始化,删除,遍历)
- SDKD 14级组队练习赛(一) D 数组存储二叉树并递归遍历
- 数组存储到二叉树并前序中序后序遍历
- 二叉树用数组顺序存储(完全二叉树)并实现三种遍历,代码详解!!!
- 二叉树利用队列实现层次遍历
- 构建二叉树并实现递归遍历
- java实现并遍历二叉树
- 创建二叉树并遍历二叉树
- 数组实现二叉树遍历 (北邮OJ)
- 二叉树遍历 实现
- 利用栈中序遍历二叉树
- 利用栈后序遍历二叉树
- 二叉树遍历(遍历C#实现)
- 二叉树的建立与遍历(一)(c++实现)
- 数据结构 利用循环队列层次遍历一棵二叉树 递归实现
- EL表达式简介
- 三个数的算数平方根
- 人生第一份工作
- WEEK9
- ubuntu-14.04-desktop-amd64 安装 Beyond Compare,ia32-libs
- 二叉树(一)利用数组初始化二叉树,并实现前序中序后序遍历
- poj 3449 Geometric Shapes 线段相交
- 第九周练习
- 下载Google官方/CM Android源代码自动重新开始的Shell脚本
- week_9
- eclipse插件获取ImageDescriptor的方法
- 多个Activity跳转中的数据传递(二)
- FFmpeg 基本用法
- ZOJ-1952