java中什么叫做树形?Java中有没有现成的树形结构的类
大家好,感谢邀请,今天来为大家分享一下java中什么叫做树形的问题,以及和Java中有没有现成的树形结构的类的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
如何用Java实现树形结构啊
package tree;
import java.util.LinkedList;
import java.util.List;
/**
*功能:把一个数组的值存入二叉树中,然后进行3种方式的遍历
*
*参考资料0:数据结构(C语言版)严蔚敏
*
*参考资料1:http://zhidao.baidu.com/question/81938912.html
*
*参考资料2:http://cslibrary.stanford.edu/110/BinaryTrees.html#java
*
*@author ocaicai@yeah.net@date: 2011-5-17
*
*/
public class BinTreeTraverse2{
private int[] array={ 1, 2, 3, 4, 5, 6, 7, 8, 9};
private static List<Node> nodeList= null;
/**
*内部类:节点
*
*@author ocaicai@yeah.net@date: 2011-5-17
*
*/
private static class Node{
Node leftChild;
Node rightChild;
int data;
Node(int newData){
leftChild= null;
rightChild= null;
data= newData;
}
}
public void createBinTree(){
nodeList= new LinkedList<Node>();
//将一个数组的值依次转换为Node节点
for(int nodeIndex= 0; nodeIndex< array.length; nodeIndex++){
nodeList.add(new Node(array[nodeIndex]));
}
//对前lastParentIndex-1个父节点按照父节点与孩子节点的数字关系建立二叉树
for(int parentIndex= 0; parentIndex< array.length/ 2- 1; parentIndex++){
//左孩子
nodeList.get(parentIndex).leftChild= nodeList
.get(parentIndex* 2+ 1);
//右孩子
nodeList.get(parentIndex).rightChild= nodeList
.get(parentIndex* 2+ 2);
}
//最后一个父节点:因为最后一个父节点可能没有右孩子,所以单独拿出来处理
int lastParentIndex= array.length/ 2- 1;
//左孩子
nodeList.get(lastParentIndex).leftChild= nodeList
.get(lastParentIndex* 2+ 1);
//右孩子,如果数组的长度为奇数才建立右孩子
if(array.length% 2== 1){
nodeList.get(lastParentIndex).rightChild= nodeList
.get(lastParentIndex* 2+ 2);
}
}
/**
*先序遍历
*
*这三种不同的遍历结构都是一样的,只是先后顺序不一样而已
*
*@param node
*遍历的节点
*/
public static void preOrderTraverse(Node node){
if(node== null)
return;
System.out.print(node.data+"");
preOrderTraverse(node.leftChild);
preOrderTraverse(node.rightChild);
}
/**
*中序遍历
*
*这三种不同的遍历结构都是一样的,只是先后顺序不一样而已
*
*@param node
*遍历的节点
*/
public static void inOrderTraverse(Node node){
if(node== null)
return;
inOrderTraverse(node.leftChild);
System.out.print(node.data+"");
inOrderTraverse(node.rightChild);
}
/**
*后序遍历
*
*这三种不同的遍历结构都是一样的,只是先后顺序不一样而已
*
*@param node
*遍历的节点
*/
public static void postOrderTraverse(Node node){
if(node== null)
return;
postOrderTraverse(node.leftChild);
postOrderTraverse(node.rightChild);
System.out.print(node.data+"");
}
public static void main(String[] args){
BinTreeTraverse2 binTree= new BinTreeTraverse2();
binTree.createBinTree();
// nodeList中第0个索引处的值即为根节点
Node root= nodeList.get(0);
System.out.println("先序遍历:");
preOrderTraverse(root);
System.out.println();
System.out.println("中序遍历:");
inOrderTraverse(root);
System.out.println();
System.out.println("后序遍历:");
postOrderTraverse(root);
}
}
手机中的JAVA是什么意思
支持2楼,
Java是一种程序语言,不过具体是什么程序语言我们完全没有必要知道。作为游戏一族,我们只需要知道两件事:
第一,您的手机是否支持Java,要了解这一点您可以查阅您的手机的说明书,或者直接询问经销商。
第二,您挑选的Java游戏是否支持您的手机,要了解这一点,您可以查看该java游戏的说明,看自己的手机型号是否属于该游戏支持的型号。
资料:
Java是由Sun微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented)的程序语言。JAVA目前在手机上应用最多的就是JAVA游戏。
Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的码,而是产生一种中间码叫作
ByteCode,这种码必需在透过
Java
的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。Java写出来的程序可分为两类,分别是Java
Applet与一般的Application,而Application
这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。
Applets类似于应用程序,但是它们不能单独运行,
Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。
Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以在网页中加入各式各样的动态效果。可以放上一段动画,加入声音,也可以建立交互式网页等。
Java手机软件平台
Java手机软件平台采用的基本Java平台是CLDC
(Connected
Limited
Device
Configuration)和MIDP
(Mobile
Information
Device
Profile),是J2ME
(Java
2
Micro
Edition)的一部分,在中国一般称为“无线Java”技术。此前,有人把它叫做“K-Java”;其实,K-Java的叫法只是Sun公司在开发KVM
Java虚拟机时的项目代号,在该技术被正式命名为KVM后,就不再用K-Java了。
KJava即J2ME(Java
2
Micro
Edition),是Sun公司专门用于嵌入式设备的Java软件。以KJava编程语言为手机开发应用程序,可以为手机用户提供游戏、个人信息处理、电子地图、股票等服务程序。J2ME(Java
2
Micro
Edition)是致力于消费产品和嵌入式设备的最佳解决方案。J2ME在设计其规格的时候,遵循着“对于各种不同的装置而造出一个单一的开发系统是没有意义的事”这个基本原则。于是J2ME先将所有的嵌入式装置大体上区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA、手机);另外一种是运算能力相对较佳、并且在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱)。因为这两种区分,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Connected
Limited
Device
Configuration(CLDC)规格之中;而另外一种装置则规范为Connected
Device
Configuration(CDC)规格。也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。
Java技术的开放性、安全性和庞大的社会已有资源,以及其跨平台性,即“编写一次,到处运行”的特点,使Java技术成为智能手机软件平台的事实标准。采用Java技术后,编写应用程序和提供服务的人就不必关心接受其服务的手机采用的是什么操作系统和芯片,只要按照Java的要求去写程序就好了;同样,生产手机的厂商也不必顾虑将来谁来提供增值服务。可以看出,采用Java技术,可以建立完整、高效的无线数据增值服务产业链,从而为用户提供灵活、个性化、内容方式多样的服务。
Java手机发展现状
到今年6月,全世界已经有大约1亿部Java手机在使用,除中国大陆外共有53个移动运行商正式推出了基于Java技术的无线数据增值服务。中国移动通信集团已经建立了无线Java增值服务体系,并推出了“百宝箱”等服务品牌,包括游戏百宝箱、娱乐百宝箱、商务百宝箱、生活百宝箱等,已经于2003年7月10日开始正式商用。
中国联通公司也正在其CDMA
1X网络上建立无线Java增值服务体系,目前系统正在建设过程中,并且2003年9月26日中国联通、北京振戎融通公司和Sun公司在人民大会堂宣布联合发起成立“UniJa技术联盟”,三方将在联通CDMA
1X网络上的Java增值服务方面全面合作。
Java中有没有现成的树形结构的类
javax.swing
public class JTreeextends JComponentimplements Scrollable, Accessible</dt>将分层数据集显示为轮廓的控件。有关面向任务的文档和使用树的示例,请参阅《The Java Tutorial》中的 How to Use Trees一节。树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识。展开节点是一个非叶节点(由返回 false的 TreeModel.isLeaf(node)标识),当展开其所有祖先时,该节点将显示其子节点。折叠节点是隐藏它们的节点。隐藏节点是位于折叠祖先下面的节点。所有可查看节点的父节点都是可以展开的,但是可以显示它们,也可以不显示它们。显示节点是可查看的并且位于可以看到它的显示区域。以下 JTree方法使用"visible"来表示"displayed": isRootVisible() setRootVisible() scrollPathToVisible() scrollRowToVisible() getVisibleRowCount() setVisibleRowCount()
好了,关于java中什么叫做树形和Java中有没有现成的树形结构的类的问题到这里结束啦,希望可以解决您的问题哈!