求数据结构(JAVA版)实验树和二叉树题目答案

作者&投稿:主父融 (若有异议请与网页底部的电邮联系)
求数据结构(Java版)(第三版)课后习题及实验答案~

出版社和作者敢不敢说明白了?

左右子树为空。
一棵树 T 采用二叉链表 BT 存储, 如果树 T 中某结点为叶子结点, 则在二叉链表 BT 中所对应的结点一定满足 左右子树为空 。

/**
* @param args
之前在大学的时候写的一个二叉树算法,运行应该没有问题,就看适不适合你的项目了 */
public static void main(String[] args) {

BiTree e = new BiTree(5);
BiTree g = new BiTree(7);
BiTree h = new BiTree(8);
BiTree l = new BiTree(12);
BiTree m = new BiTree(13);
BiTree n = new BiTree(14);
BiTree k = new BiTree(11, n, null);
BiTree j = new BiTree(10, l, m);
BiTree i = new BiTree(9, j, k);
BiTree d = new BiTree(4, null, g);
BiTree f = new BiTree(6, h, i);
BiTree b = new BiTree(2, d, e);
BiTree c = new BiTree(3, f, null);
BiTree tree = new BiTree(1, b, c);
System.out.println("递归前序遍历二叉树结果: ");
tree.preOrder(tree);
System.out.println();
System.out.println("非递归前序遍历二叉树结果: ");
tree.iterativePreOrder(tree);
System.out.println();
System.out.println("递归中序遍历二叉树的结果为:");
tree.inOrder(tree);
System.out.println();
System.out.println("非递归中序遍历二叉树的结果为:");
tree.iterativeInOrder(tree);
System.out.println();
System.out.println("递归后序遍历二叉树的结果为:");
tree.postOrder(tree);
System.out.println();
System.out.println("非递归后序遍历二叉树的结果为:");
tree.iterativePostOrder(tree);
System.out.println();
System.out.println("层次遍历二叉树结果: ");
tree.LayerOrder(tree);
System.out.println();
System.out.println("递归求二叉树中所有结点的和为:"+getSumByRecursion(tree));
System.out.println("非递归求二叉树中所有结点的和为:"+getSumByNoRecursion(tree));

System.out.println("二叉树中,每个节点所在的层数为:");
for (int p = 1; p <= 14; p++)
System.out.println(p + "所在的层为:" + tree.level(p));
System.out.println("二叉树的高度为:" + height(tree));
System.out.println("二叉树中节点总数为:" + nodes(tree));
System.out.println("二叉树中叶子节点总数为:" + leaf(tree));
System.out.println("二叉树中父节点总数为:" + fatherNodes(tree));
System.out.println("二叉树中只拥有一个孩子的父节点数:" + oneChildFather(tree));
System.out.println("二叉树中只拥有左孩子的父节点总数:" + leftChildFather(tree));
System.out.println("二叉树中只拥有右孩子的父节点总数:" + rightChildFather(tree));
System.out.println("二叉树中同时拥有两个孩子的父节点个数为:" + doubleChildFather(tree));
System.out.println("--------------------------------------");
tree.exChange();
System.out.println("交换每个节点的左右孩子节点后......");
System.out.println("递归前序遍历二叉树结果: ");
tree.preOrder(tree);
System.out.println();
System.out.println("非递归前序遍历二叉树结果: ");
tree.iterativePreOrder(tree);
System.out.println();
System.out.println("递归中序遍历二叉树的结果为:");
tree.inOrder(tree);
System.out.println();
System.out.println("非递归中序遍历二叉树的结果为:");
tree.iterativeInOrder(tree);
System.out.println();
System.out.println("递归后序遍历二叉树的结果为:");
tree.postOrder(tree);
System.out.println();
System.out.println("非递归后序遍历二叉树的结果为:");
tree.iterativePostOrder(tree);
System.out.println();
System.out.println("层次遍历二叉树结果: ");
tree.LayerOrder(tree);
System.out.println();

System.out.println("递归求二叉树中所有结点的和为:"+getSumByRecursion(tree));
System.out.println("非递归求二叉树中所有结点的和为:"+getSumByNoRecursion(tree));

System.out.println("二叉树中,每个节点所在的层数为:");
for (int p = 1; p <= 14; p++)
System.out.println(p + "所在的层为:" + tree.level(p));
System.out.println("二叉树的高度为:" + height(tree));
System.out.println("二叉树中节点总数为:" + nodes(tree));
System.out.println("二叉树中叶子节点总数为:" + leaf(tree));
System.out.println("二叉树中父节点总数为:" + fatherNodes(tree));
System.out.println("二叉树中只拥有一个孩子的父节点数:" + oneChildFather(tree));
System.out.println("二叉树中只拥有左孩子的父节点总数:" + leftChildFather(tree));
System.out.println("二叉树中只拥有右孩子的父节点总数:" + rightChildFather(tree));
System.out.println("二叉树中同时拥有两个孩子的父节点个数为:" + doubleChildFather(tree));
}
}


JAVA与数据结构哪一科简单一些??
JAVA和数据结构是不同的科目 JAVA是编程语言,数据结构是编程思想 不要混为一谈 一定要先学JAVA再学数据结构 学JAVA是学编程语言,学好之后再学数据结构对你的编程思想及能力会有提高的 要说简单,初学JAVA简单点,如果JAVA没学好就学数据结构会很吃力,定会有种看天书的感觉 加油吧 ...

如何理解java数据结构中的快速排序方法
原理:快速排序也是分治法思想的一种实现,他的思路是使数组中的每个元素与基准值(Pivot,通常是数组的首个值,A[0])比较,数组中比基准值小的放在基准值的左边,形成左部;大的放在右边,形成右部;接下来将左部和右部分别递归地执行上面的过程:选基准值,小的放在左边,大的放在右边。。。直到...

java数据结构
对于栈,我给你总结下:栈(stack):限定仅在表尾进行插入或删除操作的线。表尾-栈顶(top),表头-栈底(bootom)特点:先进后出(filo),或后进先出(lifo)。至于你的问题实现代码如下(复制可以直接使用):public static void main(String[] args) { Stack<Number> a = new Stack<Number>...

java数据结构
首先明确,带权路径长度WPL最小的二叉树称作最优二叉树或哈夫曼树 那么比如说有4个节点,分别带权7,5,2,4如下ab两图 WPLa=7*2+5*2+2*2+4*2=36 WPLb=7*1+5*2+2*3+4*3=35 可以看到,出现概率越小的越应该放在下面(也就是说被遍历的概率小就可以代价大一点,而容易便利到的一定要...

用java实现一个数据结构!
public static void main(String[] args) throws IOException { List list = new List();for (int i = 1; i <= 10; i++) { System.out.print("请输入第" + i + "个数: ");list.add(san.nextInt());list.print();} System.out.println("输入的数据如下: ");list.print();}...

学Java 有必要看数据结构的书吗?如果是,那么哪本书比较好
非常有必要,数据结构可以提升你的编程内功。老严的那本《数据结构》。数据结构(Java 语言版)

java数据结构和算法
首先看存储方式, 这个list, 只保存一个link的引用, 作为链表的头, 然后通过这个头.next, 得到第二个, 第二个.next得到第三个, 一次类推, 知道.next == null 的时候, 说明list结束.那么现在分两种情况看:1. 当当前链表里面没有元素的时候, 那么就添加一个, 然后让它的next = first, 也就是...

五道java语言描述的数据结构编程题,请求给予详细解答
第一题:\/\/使用集合提供的工具方法 public static List<Integer> merge(List<Integer> a, List<Integer> b) { \/\/a,b not null \/\/全部放到一个set里面,使得元素合并 Set<Integer> set = new HashSet<Integer>(a);set.addAll(b);\/\/将set里面的元素放到列表再转为数组 Integer[] array = ...

Java数据结构跳舞配对问题(队列的应用)
代码如下,可以直接运行。public static void main(String[] args) { final int M = 6; \/\/ number of girls,可改动 final int N = 7; \/\/ number of boys,可改动 int x = 3;\/\/ some boy,可改动 int y = 5;\/\/ some girl,可改动 String result = "";\/\/ 记录结果,即第二个...

java 数据结构题
①:用HashSet(无需不重复)类的addAll方法来实现,package com.golden.util;import java.util.Collection;import java.util.HashSet;public class Test { public static void main(String[] args) { Collection<Integer> a = new HashSet<Integer>(); a.add(3); a.add(5); ...

合江县13851208485: 数据结构(Java版)实验2:使用一个栈,将十进制转换成二进制、八进制或十六进制. -
雀雯庆兴: public static String baseConverter(int decNumber,int base){String[] digits = new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};String result = "";Stack remStack = ...

合江县13851208485: 数据结构中的树和二叉树有什么关系?如何相互转换? -
雀雯庆兴: 树可以是多叉树,可以是二叉树 二叉树一般比较好处理,所以对于任意的一棵树,一般转化成二叉树处理 相互转化的方法网上讲解非常多,这里碍于篇幅不展开,请自行百度关键字”多叉转二叉“,有很多的,我刚查过了~ 满意望采纳谢谢!

合江县13851208485: 数据结构的二叉树实验 -
雀雯庆兴: #include<stdio.h>#include<stdlib.h>#include <malloc.h> typedef struct BiTNode{ int data; struct BiTNode *lchild ,*rchild; } *BiTree; void CreateBiTree(BiTree &T ); void Pre(BiTree p); void PreOrderTraverse(BiTree p); void In(BiTree p); void ...

合江县13851208485: 数据结构 树与二叉树题目 求解 -
雀雯庆兴: 左右子树为空.一棵树 T 采用二叉链表 BT 存储, 如果树 T 中某结点为叶子结点, 则在二叉链表 BT 中所对应的结点一定满足 左右子树为空 .

合江县13851208485: 用java建立二叉树 -
雀雯庆兴: 数据结构的教材里有, 建立两个类就应该可以了.一个是树的节点,一个是树,这个是我以前编写的宽度优先遍历的树的构建和遍历,希望对你有帮助.文件名是:Tree.javaimport java.util.ArrayList;// 树的一个节点 class TreeNode { Object...

合江县13851208485: 求java数据结构实现由先序遍历序列和中序遍历及由中序遍历序列和后序遍历构成一个二叉树的功能的程序!! -
雀雯庆兴: 先序遍历就是按照:1.根节点.2.左子树.3.右子树 的顺序进行遍历. 中序遍历,:1左子树.2根节点.3右子树.的顺序进行遍历. 后序遍历:1左子树.2右子树 .3根节点 .的顺序遍历. java代码的思路是:首先创建节点Node类 public ...

合江县13851208485: java数据结构二叉树查找结点操作,递归调用求详细讲解 -
雀雯庆兴: 这是先序遍历树的代码,什么是先序遍历呢,一种按照根-左子树-右子树的顺序遍历树就是先序遍历.CBTType TreeFindNode(CBTType treeNode,String data){CBTType ptr;if(treeNode==null){//输入根节点为空时return null;}else{if(treeNode.data.equals...

合江县13851208485: 求数据结构做二叉树实验的心得体会、、、 -
雀雯庆兴: #include#include typedef struct BNode { char data; struct BNode *lchild; struct BNode *rchild; }BTNode; typedef BTNode *BinTree; void CreateBinTree(BinTree *root)//以先序来建立二叉树 { char ch; if((ch=getchar())==' ')//这个代表空格,可换别的字...

合江县13851208485: 数据结构上机实验编程:二叉树.要一套完整的代码程序!!!不要文字描述 -
雀雯庆兴: 以下为程序代码,请楼主参考# include <stdio.h># include <stdlib.h># define OK 1# define ERROR -1# define overflow -1 typedef int ElemType; typedef int Status; typedef struct BiTNode { ElemType data;//此处Elem Type 根据数据类型实际情况而...

合江县13851208485: 求数据结构做二叉树实验的心得体会、、、
雀雯庆兴: #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; typedef struct BNode { char data; struct BNode *lchild; struct BNode *rchild; }BTNode; typedef BTNode *BinTree; void CreateBinTree(BinTree *root)//以先序来建立二叉树 { char ch; if((ch=getchar())==' ')//...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网