
正文
用java代码打印小树 用java代码打印小树作品
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何用java打印一棵树
import java.util.LinkedList;/**
* 需求:按层打印一棵树
* 说明:树是保存在一个链表中
* created by wangjunfu on 2017-05-25. */
public class TreeNode {
String data;
TreeNode parent;
LinkedListTreeNode childlist;
TreeNode() {
data = null;
childlist = new LinkedList();
parent = null;
} //递归显示并打印一棵树
private static void displayTree(TreeNode f, int level) {
String preStr = ""; // 打印前缀
for (int i = 0; i level; i++) {
preStr += " ";
} for (int i = 0; i f.childlist.size(); i++) {
TreeNode t = f.childlist.get(i);
System.out.println(preStr + "-" + t.data); if (!t.childlist.isEmpty()) {
displayTree(t, level + 1);
}
}
}
}
相关问答
Q1: JAVA高手进来 求解!!
/*
* OneFractalTree.java
*/
import java.awt.*;
import javax.swing.*;
public class OneFractalTree extends JApplet {
final double ONE_DEGREE = Math.PI/180;
final double BRANCHANGLE = ONE_DEGREE*30;
final double SHRINKFACTOR = .65;
final int START_LENGTH = 50;
public void drawbranch( Graphics g, double startx, double starty, double length, double angle )
{
double endx = startx + Math.sin(angle) * length;
double endy = starty + Math.cos(angle) * length;
if( 1 length ) {
g.setColor( length 5 ? Color.green : Color.black );
g.drawLine( (int)startx, (int)starty, (int)endx, (int)endy );
drawbranch( g, endx, endy, length * SHRINKFACTOR, angle - BRANCHANGLE );
drawbranch( g, endx, endy, length * SHRINKFACTOR, angle );
drawbranch( g, endx, endy, length * SHRINKFACTOR, angle + BRANCHANGLE);
}
/*
for ( int j = 1; j = 20; j++ ) {
g.setlength(
(int)( Math.random() * 256 ),
( int ) ( Math.random() * 256 ),
( int ) ( Math.random() * 256 ));
}*/
}
public void paint( Graphics g ) {
Rectangle r = getBounds();
drawbranch( g, r.width/2, r.height, START_LENGTH, Math.PI );
drawbranch( g, r.width/2, r.height/2, START_LENGTH, Math.PI );
}
}
/*test.html*/
html
body
applet
code="OneFractalTree.class"
width=300
height=300
/applet
/body
我把你那注释掉了,可以 实现小树,我不太明白你那for 里length,你想做什么,你的代码有些晦涩,还用了递归,这样,不太好,而且,你的递归有点多,这样很吃内存的
Q2: (急!)用循环结构编写程序,实现显示输出下面由星号(“*”)构成的小树图案
你把它分成2个部分不就行了,上面的三角形一部分,下面的一部分,上面的用for循环就可以搞出来了
public class TestApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 1;i=5;i++) {
for(int j=1;j=5-i;j++) {
System.out.print(" ");
}
for(int m=1;m=2*i+1;m++) {
System.out.print("*");
}
System.out.println();
}
for(int n=1;n=4;n++) {
System.out.println(" *****");
}
}
}
Q3: java中把数组以二叉树形式打印出来
你说的意思应该是用数组的方式存储二叉树,这需要利用到完全二叉树的性质,
,完全二叉树通常采用数组而不是链表存储,其存储结构如下:
var
tree:array[1..n]of
longint;{n:integer;n=1}
对于tree[i],有如下特点:
(1)若i为奇数且i1,那么tree的左兄弟为tree[i-1];
(2)若i为偶数且in,那么tree的右兄弟为tree[i+1];
(3)若i1,tree的双亲为tree[i
div
2];
(4)若2*i=n,那么tree的左孩子为tree[2*i];若2*i+1=n,那么tree的右孩子为tree[2*i+1];
(5)若in
div
2,那么tree[i]为叶子结点(对应于(3));
(6)若i(n-1)
div
2.那么tree[i]必有两个孩子(对应于(4))。
(7)满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
完全二叉树第i层至多有2^(i-1)个节点,共i层的完全二叉树最多有2^i-1个节点。
代码简单,网上很多,不懂也可以问我
Q4: jsp页面如何用代码(java语言)实现打印功能?
如一楼所说,你的jsp源文件的java代码是在服务器上执行的,客户端接收到的只有html
用JavaScript打印吧
input
id="btnPrint"
type="button"
value="打印"
onclick="javascript:window.print();"
/
可以用样式控制,你想让那块打印就打印啊,样式如下:
style
type="text/css"
media=print
.noprint{display
:
none
}
/style
然后使用样式就可以:
p
class="noprint"不需要打印的地方/p
用java代码打印小树的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用java代码打印小树作品、用java代码打印小树的信息别忘了在本站进行查找喔。







