数据结构实验三.doc

上传人:飞****2 文档编号:56416189 上传时间:2022-11-01 格式:DOC 页数:5 大小:24.50KB
返回 下载 相关 举报
数据结构实验三.doc_第1页
第1页 / 共5页
数据结构实验三.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《数据结构实验三.doc》由会员分享,可在线阅读,更多相关《数据结构实验三.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据结构实验报告项目名称 专业班级 学 号 姓 名 实验成绩:批阅教师:年 月 日实验3二叉树的基本操作实验学时: 实验地点: 实验日期: 实习报告的开头应给出题目、班级、姓名、学号和完成日期,并包括以下7个内容:实习报告的开头应给出题目、班级、姓名、学号和完成日期,并包括以下7个内容:1 需求分析以二叉链表作存储结构,编写程序,实现如下的功能:1、根据输入的数据建立一个二叉树;2、分别采用前序、中序、后序的遍历方式显示输出二叉树的遍历结果3、采用非递归的编程方法,分别统计二叉树的节点个数、度为1、度为2和叶子节点的个数,以及数据值的最大值和最小值。2概要设计创建节点,二叉树,实现前序、中序、

2、后序遍历,写节点,度数1,度数2和叶子节点数程序,写主程序3详细设计节点有数据,左右孩子指针,二叉树创建采用递归,遍历程序等依据书上的算法写4调试分析大小写错误,少些后括号等低级错误5用户使用说明按照提示输入数据,无左孩子或右孩子的输入#号6测试结果 从键盘上输入一个字符a从键盘上输入一个字符b从键盘上输入一个字符#从键盘上输入一个字符#从键盘上输入一个字符c从键盘上输入一个字符d从键盘上输入一个字符#从键盘上输入一个字符#从键盘上输入一个字符e从键盘上输入一个字符#从键盘上输入一个字符#Pre Order a b c d eIn Order b a d c ePost Order b d e

3、 c anumbersOfNode:5numbersOfLeafs:3numbersOfDegree2:2numbersOfDegree1:0maxOfNode:eminOfNode:aProcess completed.7附录/* * (#)BTree.java * * * author * version 1.00 2013/4/22 */import java.util.Scanner;public class BTree public BNode root; public BTree() public BNode createBTree()char ch;BNode bt;System

4、.out.println(从键盘上输入一个字符);Scanner scanner = new Scanner(System.in);String s1 = scanner.nextLine();ch=s1.charAt(0);/从键盘上输入一个字符if (ch = #) return null;/空格作为结束标志elsebt= new BNode();/产生新结点bt.data=ch;bt.lChild= createBTree();bt.rChild= createBTree();return (bt); public void preTravel(BNode t)if (t != null

5、) System.out.println( +t.data);preTravel(t.lChild);preTravel(t.rChild); /前序 public void inTravel(BNode t)if (t != null) inTravel(t.lChild);System.out.println( +t.data);inTravel(t.rChild); /中序 public void postTravel(BNode t)if (t != null) postTravel(t.lChild);postTravel(t.rChild);System.out.println(

6、+t.data); /后序 public int numbersOfNode(BNode t) int i; if(t=null) i=0; else if(t.lChild=null&t.rChild=null) i=1; else i=numbersOfNode(t.lChild)+numbersOfNode(t.rChild)+1; return i; /节点个数 public int numbersOfLeafs(BNode t) int i; if(t=null) i=0; else if(t.lChild=null&t.rChild=null) i=1; else i=number

7、sOfLeafs(t.lChild)+numbersOfLeafs(t.rChild); return i; /叶子个数 public int numbersOfDegree2(BNode t) int i=numbersOfLeafs(t)-1; return i; /度为二的个数 public int numbersOfDegree1(BNode t) int i=numbersOfNode(t)-2*numbersOfLeafs(t)+1; return i; /度为一的个数 public char maxOfNode(BNode t) char max=u0000; if(t!=nul

8、l) max=t.data; if(maxmaxOfNode(t.lChild) max=maxOfNode(t.lChild); if(maxminOfNode(t.lChild) min=minOfNode(t.lChild); if(minminOfNode(t.rChild) min=minOfNode(t.rChild); return min; /最小值public static void main(String args)BTree tt = new BTree();tt.root = tt.createBTree();System.out.println(Pre Order);

9、tt.preTravel(tt.root);System.out.println(In Order);tt.inTravel(tt.root);System.out.println(Post Order);tt.postTravel(tt.root);System.out.println(numbersOfNode:+tt.numbersOfNode(tt.root);System.out.println(numbersOfLeafs:+tt.numbersOfLeafs(tt.root);System.out.println(numbersOfDegree2:+tt.numbersOfDeg

10、ree2(tt.root);System.out.println(numbersOfDegree1:+tt.numbersOfDegree1(tt.root);System.out.println(maxOfNode:+tt.maxOfNode(tt.root); System.out.println(minOfNode:+tt.minOfNode(tt.root);/* * (#)BNode.java * * * author * version 1.00 2013/4/22 */public class BNode public char data;public BNode lChild;public BNode rChild; public BNode() public BNode(char data)this.data = data;this.lChild = null;this.rChild = null;public BNode(char data,BNode l,BNode r)this.data = data;this.lChild = l;this.rChild = r;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁