资源简介
参考资料:《数据结构》(C语言版)严蔚敏&&吴伟民&&米宁著
要求选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作。有个亮点是利用字符在dos界面显示二叉树的结构形态。
里面包含了完整的源程序和实验报告文档。
实验报告包含了完整的步骤包括:
一.抽象数据类型二叉树的定义
二.存储结构定义(包括顺序存储和二叉链表)及各基本操作的实现
三.测试方案。包括详细的测试函数
四.测试结果。对所有操作的测试过程中二叉树的变化截图。
五.二叉树各基本操作时间复杂度与存储结构特点分析及对算法的改进设想。
六.实验总结和体会
实现的基本操作如下:
InitBiTree(&T)
DestroyBiTree(&T)
CreateBiTree(&T)
ClearBiTree(&T)
BiTreeEmpty(T)
BiTreeDepth(T)
Root(T)
Value(T,e)
Assign(T,&e,value)
Parent(T,e)
LeftChild(T,e)
RightChild(T,e)
LeftSibling(T,e)
RightSibling(T,e)
InsertChild(T,p,LR,c)
DeleteChild(T,p,LR)
PreOrderTraverse(T,Visit())
InOrderTraverse(T,Visit())
PostOrderTraverse(T,Visit())
LevelOrderTraverse(T,Visit())
下载清单:
Base.h //全局常量、公共变量、公共函数等
BiTree.h //二叉链表二叉树实现
BiTree_Main.cpp //二叉链表二叉树测试程序
SqBiTree.h //顺序存储二叉树实现
SqBiTree_Main.cpp //顺序存储二叉树测试程序
抽象数据类型实现-二叉树-实验报告.doc
![](http://www.nz998.com/pic/48906.jpg)
代码片段和文件信息
#include“base.h“ // 公用头文件、公共常量及公共函数等
#include“bitree.h“ // 二叉树二叉链表基本操作
void Menu(); // 菜单函数
void Produce(char *str); // 随机产生二叉树先序序列函数
int main() // 主函数
{
BiTree Tbtinsert_bt;
char cmdstr[MAXSIZE]elem;
int loctemp;
InitBiTree(T); // 初始化二叉链表二叉树
Menu(); // 显示菜单
while(1)
{
ClearAera(); // 清空结果显示区
SetColor(3 );
printf(“请选择操作:(按‘Q‘退出)“);
SetColor();
cmd = getch();
ClearAera();
fflush(stdin);
switch(cmd)
{
case ‘0‘:// 随机创建一棵二叉树
while(cmd != ‘y‘ && cmd != ‘Y‘)
{
Produce(str); // 随机产生二叉树先序序列
CreateBiTree(Tstr);// 用此序列建树
PrintBiTree(T); // 树形结构显示
printf(“ 使用屏幕右下角创建的二叉树?\n“);
ShowBiTree(T); // 广义表形式显示
cmd = getch();
ClearAera();
}
break;
case ‘1‘:// 手动创建一棵二叉树
printf(“ 请按二叉树先序序列输入二叉树:(空结点用空格‘ ‘表示)\n “);
CreateBiTree(T);
PrintBiTree(T); // 树形结构显示二叉树
ClearAera();
printf(“ 二叉树创建成功!\n“);
ShowBiTree(T); // 广义表形式显示
getch();
break;
case ‘2‘:// 销毁二叉树
DestroyBiTree(T);
printf(“ 二叉树已被销毁!“);
PrintBiTree(T);
getch();
break;
case ‘3‘:// 清空二叉树
ClearBiTree(T);
printf(“ 二叉树已被清空!“);
PrintBiTree(T);
getch();
break;
case ‘4‘:// 判空
if(BiTreeEmpty(T)) printf(“二叉树是空二叉树。“);
else printf(“二叉树非空“);
getch();
break;
case ‘5‘:// 求深度
printf(“深度是 %d“BiTreeDepth(T));
getch();
break;
case ‘6‘:// 求左孩子
printf(“你想求哪个字符的左孩子?“);
do{
elem = getchar();
ClearAera();
bt = SearchBiTree(Telem); // 查找指定的结点值elem
if(!bt) printf(“ 你输入的结点不存在!请重新输入:“);
}while(!bt);
ClearAera();
bt = LeftChild(Tbt); // 求左孩子
if(bt) printf(“ %c的左孩子是%c“elembt->data);
else printf(“ %c没有左孩子“elem);
getch();
break;
case ‘7‘:// 求右孩子
printf(“ 你想求哪个字符的右孩子?“);
do{
elem = getchar();
ClearAera();
bt = SearchBiTree(Telem);
if(!bt) printf(“ 你输入的结点不存在!请重新输入:“);
}while(!bt);
ClearAera();
bt = RightChild(Tbt);
if(bt) printf(“ %c的右孩子是%c“elembt->data);
else printf(“ %c没有右孩子“elem);
getch();
break;
case ‘8‘:// 求左兄弟
printf(“ 你想求哪个字符的左兄弟?“);
do{
elem = getchar();
ClearAera();
bt = SearchBiTree(Telem);
if(!bt) printf(“ 你输入的结点不存在!请重新输入:“);
}while(!bt);
ClearAera();
bt = LeftSibling(Tbt);
if(bt) printf(“ %c的左兄弟是%c“elembt->data);
else printf(“ %c没有左兄弟“elem);
getch();
break;
case ‘9‘:// 求右兄弟
printf(“ 你想求哪个字符的右兄弟?“);
do{
elem = getchar();
ClearAera();
bt = SearchBiTree(Telem);
if(!bt) printf(“你输入的结点不存在!请重新输入:“);
}while(!bt);
ClearAera();
bt = RightSibling(Tbt);
if(bt) printf(“ %c的右兄弟是%c。“elembt->data);
else printf(“ %c没有右兄弟。“elem);
getch();
break;
case ‘a‘:// 先序遍历
if(!BiTreeEmpty(T))
{
printf(“先序遍历序列为:“);
PreOrderTraverse(TVisit);
}
else printf(“二叉树空,请先建树!“);
getch();
break;
case ‘b‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 831488 2009-11-06 16:41 抽象数据类型二叉树的实现-顺序存储与二叉链表存储\抽象类型实现-二叉树-实验报告.doc
文件 2823 2009-06-29 00:39 抽象数据类型二叉树的实现-顺序存储与二叉链表存储\ba
文件 11686 2009-06-28 22:38 抽象数据类型二叉树的实现-顺序存储与二叉链表存储\BiTree.h
文件 8242 2009-06-29 00:30 抽象数据类型二叉树的实现-顺序存储与二叉链表存储\SqBiTree.h
文件 8049 2009-06-29 18:03 抽象数据类型二叉树的实现-顺序存储与二叉链表存储\BiTree_Main.cpp
文件 6583 2009-06-29 18:03 抽象数据类型二叉树的实现-顺序存储与二叉链表存储\SqBiTree_Main.cpp
目录 0 2009-11-06 17:01 抽象数据类型二叉树的实现-顺序存储与二叉链表存储
----------- --------- ---------- ----- ----
868871 7
- 上一篇:简单的鼠标绘图程序C语言
- 下一篇:数据结构 高校社团助手 C++
相关资源
- 利用C++哈希表的方法实现电话号码查
- 学校超市选址问题(数据结构C语言版
- 数据结构,迷宫问题C语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 数据结构教程李春葆第五版书中例题
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
- C语言实现栈操作
- 简易学生管理系统源码 数据结构 大作
- 数据结构与C语言综合习题集
- 数据结构实验——赫夫曼树相关
- C语言进阶源码---基于graphics实现图书
- 数据结构——C++语言描述 陈慧南
- 二叉树排序树建立及平衡处理
- 广东工业大学数据结构课程设计航空
- 数据结构课程设计扑克牌排序
- 数据结构各种算法实现(C++模板),
评论
共有 条评论