没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
C++ 遍历二叉树实例详解 2叉数又叫红黑树,关于2叉数的遍历问题,有很多,一般有三种常用遍历方法: (1)前序遍历(2)中序遍历(3)后续遍历 以下是经典示例: #include stdafx.h #include<stdio> #include<malloc> #include <math.h > #define MaxSize 20 typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; }BiTNode,*BiTree; //建立二叉树 void CreateBi
资源推荐
资源详情
资源评论
C++ 遍历二叉树实例详解遍历二叉树实例详解
C++ 遍历二叉树实例详解遍历二叉树实例详解
2叉数又叫红黑树,关于2叉数的遍历问题,有很多,一般有三种常用遍历方法:
(1)前序遍历(2)中序遍历(3)后续遍历
以下是经典示例:
#include "stdafx.h"
#include<stdio.h>
#include<malloc.h>
#include <math.h >
#define MaxSize 20
typedef struct BiTNode
{
int data;
struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;
//建立二叉树
void CreateBiTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
getchar();
if(ch==' ')
{
printf("不产生子树。");
*T=NULL;
}
else
{
if(!(*T=(BiTNode *)malloc(sizeof(BiTNode))))
{
printf("分配空间失败");
return;
}//生成一个新节点
(*T)->data = ch;
printf("产生左右子树。");
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
//递归前序遍历
void Preorder(BiTNode *T)
{
if(T)
{
printf("%c ",T->data);
Preorder(T->lchild);
Preorder(T->rchild);
}
}
//递归中序遍历
void Inorder(BiTNode *T)
{
if(T)
{
Inorder(T->lchild);
printf("%c ",T->data);
Inorder(T->rchild);
}
}
//递归后序遍历
void Postorder(BiTNode *T)
{
if(T)
{
Postorder(T->lchild);
Postorder(T->rchild);
printf("%c ",T->data);
}
}
//非递归前序遍历
void NPreorder(BiTNode *T)
{
BiTNode *stack[MaxSize],*p;
int top=-1;
if(T)
{
top++;
stack[top]=T; //根节点进栈
while(top>-1) //栈不为空时循环
{
p=stack[top]; //退栈并访问该节点
top--;
printf("%c ",p->data);
if(p->rchild) //右孩子进栈
{
top++;
stack[top]=p->rchild;
}
if(p->lchild) //左孩子进栈
{
top++;
stack[top]=p->lchild;
}
}
}
}
//非递归中序遍历
void NInorder(BiTNode *T)
{
BiTNode *stack[MaxSize],*p;
int top=-1;
p=T;
while(p||top!=-1)
{
if(p)
{
top++;
stack[top]=p;
p=p->lchild;
} //根节点进栈,遍历左子树
else //根节点退栈,访问根节点,遍历右子树
{
p=stack[top];
top--;
printf("%c ",p->data);
p=p->rchild;
}
}
}
//非递归后序遍历
void NPostorder(BiTNode *T)
{
BiTNode *stack[MaxSize],*p;
剩余7页未读,继续阅读
weixin_38576392
- 粉丝: 7
- 资源: 896
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页