实验六二叉树实验报告


    实验四 二叉树操作
    班级:计算机班 姓名: 学号: 完成日期:2010
    题目:定二叉树实现种约定遍历
    实验目:
    (1)掌握二叉树定义存储表示学会建立棵特定二叉树方法
    (2)掌握二叉树遍历算法(先序中序序遍历算法)思想学会遍历算法递实现非递实现
    二实验容:构造二叉树实现二叉树先序中序序遍历统计二叉树深度
    三实验步骤:
    () 需求分析
    1 二叉树建立首先建立二叉链表结构体包含根节点左右子树树左右子树颗二叉树递方法建立左右子树二叉树遍历种二叉树节点访问输出程遍历时根结点左右孩子输出序构成遍历方法程需遍历方法先输出根结点先输出左右孩子选择语句实现
    2.程序执行命令:
    1)构造结点类型然创建二叉树
    2)根提示键盘输入结点
    3)通选择种方式(先序中序者序)遍历
    4)输出结果结束
    (二)概设计
    1二叉树二叉链表结点存储类型定义
    typedef struct Node
    {
    DataType data
    struct Node *LChild
    struct Node *RChild
    }BitNode*BitTree
    2建立图示二叉树:void CreatBiTree(BitTree *bt)扩展先序遍历序列创建二叉树果前树根置空否申请新节点
    3程序包含四模块
    1) 程序模块:
    2)先序遍历模块
    3)中序遍历模块
    4)序遍历模块
    4模块调关系:
    程序模块
    先序遍历模块
    中序遍历模块
    序遍历模块
    (三)详细设计
    1建立二叉树存储类型
    构造二叉树
    void CreatBiTree(BitTree *bt)扩展先序遍历序列创建二叉树果前树根置空否申请新节点
    {
    char ch
    chgetchar()
    if(ch'')*btNULL
    else
    {
    *bt(BitTree)malloc(sizeof(BitNode))申请段关该节点类型存储空间
    (*bt)>datach 生成根结点
    CreatBiTree(&((*bt)>LChild)) 构造左子树
    CreatBiTree(&((*bt)>RChild)) 构造右子树
    }
    }
    2 编程实现二叉树前序中序序遍历操作输出遍历序列
    1)先序遍历二叉树递算法:
    void PreOrder(BitTree root)
    {
    if (rootNULL)
    {
    Visit(root >data)
    PreOrder(root >LChild) 递调核心
    PreOrder(root >RChild)
    }
    }
    2)中序遍历二叉树递算法:
    void InOrder(BitTree root)
    {
    if (rootNULL)
    {
    InOrder(root >LChild)
    Visit(root >data)
    InOrder(root >RChild)
    }
    }
    3)序遍历二叉树递算法:
    void PostOrder(BitTree root)
    {
    if(rootNULL)
    {
    PostOrder(root >LChild)
    PostOrder(root >RChild)
    Visit(root >data)
    }
    }
    4)计算二叉树深度算法:
    int PostTreeDepth(BitTree bt) 求二叉树深度
    {
    int hlhrmax
    if(btNULL)
    {
    hlPostTreeDepth(bt>LChild) 求左子树深度
    hrPostTreeDepth(bt>RChild) 求右子树深度
    maxhl>hrhlhr 左右子树深度较者
    return(max+1) 返回树深度
    }
    else return(0) 果空树返回0
    }
    四调试分析测试结果
    1 进入演示程序显示界面:
    请输入二叉树中元素
    先序中序序遍历分输出结果
    2测试结果
    扩展先序遍历序列输入中代表空子树:ABCDEGF…
    先序遍历序列:ABCDEGF
    中序遍历序列:CBEGDFA
    序遍历序列:CGEFDBA
    二叉树深度:5
    3程序运行结果
    1)输入二叉树中元素(扩展先序遍历序列输入中代表空子树)显示截图:


    2)输出结果显示界面:

    图二
    4调试分析:
    程序通分调先序遍历中序遍历序遍历函数二叉树中元素进行遍历整程序基满足实验求细节问题面存缺陷写字母会导致程序法运行需处理问题认真细致程序完善总会更加努力程序更完美

    六实验总结
    1 二叉树进行表达式前缀中缀缀表示明显优势方便容易理解先序中序序分应表达式前缀中缀缀
    2 建树进行树遍历时候定理解建树遍历整程然会连什样做知道遍历树时候常栈结构(非递)
    3次实验更加解哈夫曼树构造生成方法序结构存储哈夫曼树构树程信息进行编码译码感知模块程序设计程序设计中普遍性该实验证明通模块程序设计程序读写性明显加强
    通次实验初步掌握二叉树结构特性种存储结构特点适范围掌握哈夫曼树定义思想初步掌握凹入法显示树程序树显示够完善缺点学中会断学学中注意改变






























    附录
    源程序清单
    #include
    #include
    #include
    #include
    typedef int DataType
    typedef struct Node 创建结点类型结构体
    {
    DataType data
    struct Node *LChild
    struct Node *RChild
    }BitNode*BitTree
    void CreatBiTree(BitTree *bt) 扩展先序遍历序列创建二叉树果前树根置空否申请新节点
    {
    char ch
    chgetchar()
    if(ch'')*btNULL
    else
    {
    *bt(BitTree)malloc(sizeof(BitNode))
    (*bt)>datach
    CreatBiTree(&((*bt)>LChild))
    CreatBiTree(&((*bt)>RChild))
    }
    }
    void visit(char ch)访问根节点
    {
    printf(cch)
    }
    void PreOrder(BitTree root) 先序遍历二叉树递算法
    {
    if (rootNULL)
    {
    Visit(root >data)
    PreOrder(root >LChild)
    PreOrder(root >RChild)
    }
    }
    void InOrder(BitTree root) 中序遍历二叉树递算法

    {
    if (rootNULL)
    {
    InOrder(root >LChild)
    Visit(root >data)
    InOrder(root >RChild)
    }
    }
    void PostOrder(BitTree root) 序遍历求二叉树递算法
    {
    if(rootNULL)
    {
    PostOrder(root >LChild)
    PostOrder(root >RChild)
    Visit(root >data)
    }
    }
    int PostTreeDepth(BitTree bt) 求二叉树深度
    {
    int hlhrmax
    if(btNULL)
    {
    hlPostTreeDepth(bt>LChild) 求左子树深度
    hrPostTreeDepth(bt>RChild) 求右子树深度
    maxhl>hrhlhr 左右子树深度较者
    return(max+1) 返回树深度
    }
    else return(0) 果空树返回0
    }
    void main()
    { BitTree T
    int h
    int layer
    int treeleaf
    layer0
    printf(请输入二叉树中元素(扩展先序遍历序列输入中代表空子树)\n) CreatBiTree(&T)
    printf(先序遍历序列)
    PreOrder(T)
    printf(\n中序遍历序列)
    InOrder(T)
    printf(\n序遍历序列)
    PostOrder(T)
    hPostTreeDepth(T)
    printf(\n)
    printf(二叉树深度d\nh)}
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    树木学实验报告

    **大学学生实验报告 课程名称:树木学实验 班级:11级风景园林1班   姓名:董伟英(20112830320006) 2012年12月9日  1、      实验目的:辨认植物,并...

    11年前   
    11545    0

    化学实验报告

    化学实验报告  化学是一门以实验为基础的学科。化学上的许多理论和定律都是从实验中发现归纳出来的。同时,化学理论的应用、评价也有赖于实验的探索和检验。虽然到了近代乃至现代,化学的飞速进步已经产生...

    11年前   
    1041    0

    上机实验报告

    上机实验报告  一.     题目1.  建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。要求实现以下功能:1)        数据输入;2)        查...

    8年前   
    864    0

    **学院实验报告

    实验内容:使用金融数据库查找宏观经济及行业相关数据,使用Excel进行作图分析。根据所得数据以及图形分析相关问题。实验目的:掌握金融数据库软件的相关使用,操作,快捷查找数据,能够制作美观图形,对于数据有效分析。

    3年前   
    679    0

    教育实验报告

    教育实验报告  教育实验报告  对某种教育现象实验后,要对整个实验过程进行全面总结,提出一个客观的、概括的、能反映全过程及其结果的书面材料,即谓教育实验报告。教育实验报告可分为三部分:①前言。...

    12年前   
    747    0

    电路实验报告

    实验一 元件特性的示波测量法一、实验目的1、学习用示波器测量正弦信号的相位差。2、学习用示波器测量电压、电流、磁链、电荷等电路的基本变量3、掌握元件特性的示波测量法,加深对元件特性的理解。二...

    3年前   
    3055    0

    爱情实验报告

    爱情实验报告  爱情实验报告   这学期要做一周的模块实验,我和欣儿分在一组,欣儿是班里的学习委员,负责收缴每天实验后大家必写的实验报告。    欣儿长的很美,碰到人总是浅浅地笑,不象有些女生...

    12年前   
    751    0

    CADCAM实验报告

     二叉树的遍历实验一、实验名称:二叉树的遍历实验。二、实验目的:1、掌握CAD/CAM系统中常用的数据结构二叉树的概念、存储结构以及二叉树遍历技术。2、熟练应用C语言编写二叉树的建...

    4年前   
    946    0

    生物实验报告

    生物实验报告  实验   生物组织中还原糖、脂肪、蛋白质的鉴定  一、实验目的  初步掌握鉴定生物组织中还原糖、脂肪、蛋白质的基本方法。  二、实验原理  1.还原糖的鉴定原理  生物组织中普...

    9年前   
    828    0

    oracle实验报告

    《Oracle数据库设计与 实现》 总结报告 成绩:-------------- ...

    2年前   
    504    0

    GPIO实验报告

    通过实验掌握 ARM 芯片使用 GPIO 端口。掌握 GPIO 端口控制 LED 显示。掌握系统时钟的配置。掌握库开发原理及方法。

    3年前   
    1432    0

    科技实验报告

    科技实验报告  科技实验报告   一、定义与作用  实验报告,就是在某项科研活动或专业学习中,实验者把实验的目的、方法。步骤、结果等,用简洁的语言写成书面报告。  实验报告必须在科学实验的基础...

    9年前   
    743    0

    物理实验报告

    物理实验报告  物理 实验报告              指导教师    同组者                     实验日期  2003 年9月21日   实验名称 实验一 测量物质的密...

    10年前   
    842    0

    汇编实验报告

    XX大 学 计 算 机 学 院、软 件 学 院实 验 报 告 学号: 姓名:专业:计算机科学与技术 班级: 第X周 课程名称   汇编语言程序设计课程设计(第四次)实验课时30课时...

    1年前   
    455    0

    实验报告格式

    实验报告格式实验序号:          实验项目名称:学 号 姓 名 专业、班 实验地点 指导教师 时间 一、实验目的及要求 二、实验设备(环境)及要求 三、实验内容与步骤 四、实验结果与数...

    11年前   
    779    0

    土力学实验报告

     园林学院土力学实验报告学生姓名 学 号 专业班级 土木工程 ...

    1年前   
    363    0

    电路实验报告要求

    电路实验报告要求  电路实验报告要求  同学您好:  电路实验课已经结束,请按题目要求认真完成实验报告,并要仔细检查一遍,以免退回,具体要求如下:  一、 绘制电路图要工整、选取合适比例,元件...

    9年前   
    878    0

    化学实验报告格式

    化学实验报告格式  例一  定量分析实验报告格式   (以草酸中h2c2o4含量的测定为例)   实验题目:草酸中h2c2o4含量的测定   实验目的:   学习naoh标准溶液的配制、标定及...

    8年前   
    650    0

    化学实验报告的格式

    化学实验报告的格式  1.实验题目 编组 同组者 日期 室温 湿度 气压 天气   2.实验原理   3.实验用品 试剂 仪器   4.实验装置图   5.操作步骤   6. 注意事项   7...

    11年前   
    710    0

    实验报告格式示例

    实验报告格式示例  实验报告格式示例  例一  定量分析实验报告格式  (以草酸中H2C2O4含量的测定为例)  实验题目:草酸中H2C2O4含量的测定  实验目的:  学习NaOH标准溶液的...

    10年前   
    711    0

    文档贡献者

    文***品

    贡献于2023-03-13

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档