第二次实验报告

二叉树实验教学
本文档详细记录了三个关于树的计算机科学实验:实现二叉树、基于序列构造二叉树及决策树实验。介绍了各个实验的具体要求、实现方法及测试过程。

2017-2018-1 20162306 实验二 树 实验报告

实验一:树-1-实现二叉树

  • 实验要求:
    参考教材p375,完成链树LinkedBinaryTree的实现(getRight,contains,toString,preorder,postorder)

用JUnit或自己编写驱动类对自己实现的LinkedBinaryTree进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息

课下把代码推送到代码托管平台

  • 实验过程:
    1、contain方法:判断树中是否有该元素,用find方法实现该方法,存在就返回true,不存在就返回false。
    代码如下:

public boolean contains (T target) {
if (root.find(target) == null)
            return false;
        else
            return true;
    }

2、isEmpty方法:判断树中是否为空,为空则返回true,不为空则返回false。


public boolean isEmpty() {
        return (size() == 0);
    }

3、getRight方法:与getLeft相同,返回右结点值。


public LinkedBinaryTree<T> getRight() throws EmptyCollectionException {
        if (root == null)
            throw new EmptyCollectionException("Get left operation "
                    + "failed. The tree is empty.");

        LinkedBinaryTree<T> result = new LinkedBinaryTree<T>();
        result.root = root.getRight();

        return result;
    }

4、preorder()和postorder()方法:树的前序遍历和后序遍历

  • 实验截图
    1063500-20171030012238840-802696885.png

  • 代码链接

LinkedBinaryTree
LinkedBinaryTreeTest

实验二:树-2-中序先序序列构造二叉树

  • 实验要求:
    基于LinkedBinaryTree,实现基于(中序,先序)序列构造唯一一棵二㕚树的功能,比如教材P372,给出HDIBEMJNAFCKGL和ABDHIEJMNCFGKL,构造出附图中的树

用JUnit或自己编写驱动类对自己实现的功能进行测试,提交测试代码运行截图,要全屏,包含自己的学号信息

课下把代码推送到代码托管平台

  • 实验过程:
    这个实验起初没有什么下手点,参考了网才得以实现上的资料,才得以实现。

  • 实验截图:
    1063500-20171030021904246-538369450.png

  • 代码链接

TreeNode

实验三:树-3-决策树

  • 实验要求:
    完成PP16.6

提交测试代码运行截图,要全屏,包含自己的学号信息

课下把代码推送到代码托管平台

  • 实验过程:
    这个实验比较简单,代码书上都已基本实现,主要在于逻辑要合理。

  • 实验截图:
    1063500-20171030022336949-782879891.png

  • 代码链接

BackPainAnalyzer
BackPainExpert

实验五:树-5-二叉查找树

  • 实验要求:
    完成PP17.1

提交测试代码运行截图,要全屏,包含自己的学号信息

课下把代码推送到代码托管平台

  • 实验过程:
    这个实验相对也是比较容易,主要任务是实现findMax和findMin方法,来查找最大或最小的元素

  • 实验截图:
    1063500-20171030015605277-995856802.png

  • 代码链接

LinkedBinarySearchTreeTest
LinkedBinarySearchTree

转载于:https://www.cnblogs.com/guominxiaocao/p/7751975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值