资源简介
数据结构二叉树实验源代码及运行文件,使用vc编写,内部包含
二叉树.cpp 二叉树.dsw 二叉树.dsp等
需要实验报告的童鞋可以到本人上传资源中找!
代码片段和文件信息
//#include“stdafx.h“
#include
#include
#include
#define OVERFLOW -2
#define MAX 100
#define maxsize 100
typedef struct bitnode
{
char data;
struct bitnode *lch*rch;
}bitnode*bitree;
typedef struct queuenode
{
bitree ch[maxsize];
int front;
int rear;
}queuenode;
int m=0;
void creat(bitree &T)
// 创建二叉树
{
char ch;
scanf(“%c“&ch);
if(ch==‘*‘)
T=NULL;
else
{
T=(bitree)malloc(sizeof(bitnode));
if(T==NULL)
exit(OVERFLOW);
T->data=ch;
creat(T->lch);
creat(T->rch);
}
}
void perorder (bitree T)
//先序遍历
{
if (T)
{
printf(“%c “T->data);
perorder(T->lch);
perorder(T->rch);
}
}
void incorder(bitree T)
//中序非递归遍历
{
bitree p;
int top;
bitree s[MAX];
bool boolean;
p=T;
top=0;
boolean=1;
do
{
while(p)
{
if((p->rch==NULL&&p->lch!=NULL)||(p->rch!=NULL&&p->lch==NULL))
m++;
s[top]=p;
top++;
p=p->lch;
}
if(top==0)
boolean=0;
else
{
top--;
p=s[top];
printf(“%c “p->data);
p=p->rch;
}
}while(boolean);
}
void postorder(bitree T)
//后序遍历
{
if(T)
{
postorder(T->lch);
postorder (T->rch);
printf(“%c “T->data);
}
}
void initqueue(queuenode &q)
//初始化一个带头结点的队列
{
q.front=q.rear=0;
}
int enqueue(queuenode &qbitree T)
//入队列
{
if((q.rear+1)%maxsize==q.front)
{
printf(“队列满!!!\n“);
return 0;
}
q.ch[q.rear]=T;
q.rear=(q.rear+1)%maxsize;
return 1;
}
void dequeue(queuenode &qbitree &T)
//出队列
{
T=q.ch[q.front];
q.front=(q.front+1)%maxsize;
char data;
data=T->data;
printf(“%c “data);
}
int queueempty(queuenode q)
//判断队列是否为空
{
if(q.front==q.rear)
return 1;
return 0;
}
void traverse(bitree T)
//按层次遍历树中结点
{
queuenode q;
bitree p;
initqueue(q);
p=T;
enqueue(qp);
while(queueempty(q)!=1)
{
dequeue(qp);
if(p->lch!=NULL)
if(enqueue(qp->lch)==0)
return;
if(p->rch!=NULL)
if(enqueue(qp->rch)==0)
return;
}
printf(“\n“);
}
int depth(bitree T)
//求树深
{
if(!T) return 0;
int d1;
d1= depth(T->lch);
int d2;
d2= depth(T->rch);
return (d1>d2?d1:d2)+1;
}
void main()
{
char i;
bitree A;
printf(“先序遍历算法建立二叉树,请输入节点值(空用用*表示):\n“);
creat(A);
putchar(‘\n‘);
printf(“先序遍历:“);
perorder(A);
putchar(‘\n‘);
printf(“中序遍历:“);
incorder(A);
putchar(‘\n‘);
printf(“后序遍历:“);
postorder(A);
putchar(‘\n‘);
printf(“层次遍历:“);
traverse(A);
printf(“\n度为1的节点个数为:m=%d\n“m);
putchar(‘\n‘);
printf(“树的深度为:%d\n\n“depth(A));
printf(“是否再次进行二叉树操作(Y/N)?\n“);
scanf(“%s“&i);
if(i==‘Y‘)
main();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33792 2009-12-03 12:38 数据结构二叉树实验\Debug\vc60.idb
文件 53248 2009-12-03 12:38 数据结构二叉树实验\Debug\vc60.pdb
文件 184384 2009-12-03 12:38 数据结构二叉树实验\Debug\二叉树.exe
文件 185492 2009-12-03 12:38 数据结构二叉树实验\Debug\二叉树.ilk
文件 13114 2009-12-03 12:38 数据结构二叉树实验\Debug\二叉树.obj
文件 222676 2009-12-03 12:38 数据结构二叉树实验\Debug\二叉树.pch
文件 427008 2009-12-03 12:38 数据结构二叉树实验\Debug\二叉树.pdb
文件 2985 2009-12-03 12:38 数据结构二叉树实验\二叉树.cpp
文件 3403 2009-06-30 13:03 数据结构二叉树实验\二叉树.dsp
文件 537 2009-06-30 14:07 数据结构二叉树实验\二叉树.dsw
文件 50176 2009-12-03 12:43 数据结构二叉树实验\二叉树.ncb
文件 48640 2009-12-03 12:43 数据结构二叉树实验\二叉树.opt
文件 750 2009-12-03 12:38 数据结构二叉树实验\二叉树.plg
目录 0 2009-12-03 12:38 数据结构二叉树实验\Debug
目录 0 2009-12-07 09:29 数据结构二叉树实验
----------- --------- ---------- ----- ----
1226205 15
- 上一篇:小程序前端:上传图片九宫格预览和删除
- 下一篇:sha256算法实现代码
相关资源
- pesq算法源代码c源代码
- 东北大学数据结构实验课设
- 卡尔曼SOC算法源代码
- web实现注册登录功能源代码
- 易语言U盘锁屏源代码
- 幸运转盘微信小游戏源代码
- 东北大学数据结构课程设计
- 数据结构校园导航数据结构
- c编写的数据结构创建顺序表、链表、
- Fortify-SCA扫描指南
- 数据结构之集合的并、交和差运算
- 数据结构程序设计-迷宫问题
- HY-SRF05超声波模块(全套资料包含:电
- 成语接龙游戏,源代码
- 简单图书租借系统源代码
- 读者与写者问题源代码+
- Hook API 工具 + 源代码
- 嵌入式LGUI源代码-学习嵌入式GUI设计开
- 小程序获取openid源代码
- ZLGFS文件系统源代码
- IGMP proxy源代码
- linux fb-test-帧缓冲 两个完整源代码
- 光立方Keil C51音乐频谱FFT处理源代码
- 瑞士军刀NC源码
- BPSK的VHDL语言源代码
- B样条算法源代码
- 数据结构 作业报告 实验5查找排序
- 蛙跳算法及源代码
- 基于DSP的车牌识别系统论文和保证可
- 安卓智能语音助手源代码
评论
共有 条评论