没有合适的资源?快使用搜索试试~ 我知道了~
二叉树的层序、先序、中序、后序遍历
需积分: 16 5 下载量 51 浏览量
2011-12-08
20:39:29
上传
评论
收藏 3KB TXT 举报
温馨提示
试读
6页
二叉树的层序、先序、中序、后序遍历。层序采用队列实现,先序、中序、后序采用递归的方式。
资源推荐
资源详情
资源评论
#include <stdio.h>
#include <process.h>
#include <malloc.h>
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef char TElemType;
typedef struct BiTNode {
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef BiTree QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
#include <process.h>
#include <malloc.h>
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef char TElemType;
typedef struct BiTNode {
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef BiTree QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
Status CreateBiTree(BiTree &T) {
char ch;
scanf("%c",&ch);
if(ch==' ')T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}
Status PrintElement(TElemType e){
printf("%c",e);
return OK;
}
Status PreOrderTraverse(BiTree T,Status(*Visit)(TElemType e)) {
if(T) {
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit)) return OK;
return ERROR;
}
else return OK;
}
Status InOrderTraverse(BiTree T,Status(*Visit)(TElemType e)) {
if(T) {
char ch;
scanf("%c",&ch);
if(ch==' ')T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}
Status PrintElement(TElemType e){
printf("%c",e);
return OK;
}
Status PreOrderTraverse(BiTree T,Status(*Visit)(TElemType e)) {
if(T) {
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit)) return OK;
return ERROR;
}
else return OK;
}
Status InOrderTraverse(BiTree T,Status(*Visit)(TElemType e)) {
if(T) {
剩余5页未读,继续阅读
资源评论
shisanmei3173
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功