當前位置:編程學習大全網 - 編程軟體 - 用JAVA寫二叉樹

用JAVA寫二叉樹

/**

* [Tree2.java] Create on 2008-10-20 下午03:03:24

* Copyright (c) 2008 by iTrusChina.

*/

/**

* @author WangXuanmin

* @version 0.10

*/

public class Tree2Bef {

private StringBuffer bef=new StringBuffer();

//傳入中序遍歷和後序遍歷,返回前序遍歷字串

public String getBef(String mid, String beh) {

//若節點存在則向bef中添加該節點,繼續查詢該節點的左子樹和右子樹

if (root(mid, beh) != -1) {

int rootindex=root(mid, beh);

char root=mid.charAt(rootindex);

bef.append(root);

System.out.println(bef.toString());

String mleft, mright;

mleft = mid.substring(0,rootindex);

mright = mid.substring(rootindex+1);

getBef(mleft,beh);

getBef(mright,beh);

}

//所有節點查詢完畢,返回前序遍歷值

return bef.toString();

}

//從中序遍歷中根據後序遍歷查找節點索引值index

private int root(String mid, String beh) {

char[] midc = mid.toCharArray();

char[] behc = beh.toCharArray();

for (int i = behc.length-1; i > -1; i--) {

for (int j = 0; j < midc.length; j++) {

if (behc[i] == midc[j])

return j;

}

}

return -1;

}

public static void main(String[] args) {

Tree2Bef tree=new Tree2Bef();

String mid="84925163A7B";

String bef="894526AB731";

System.out.println(tree.getBef(mid,bef));

}

}

樹結構如圖:

1

|-------|

2 3

|---| |---|

4 5 6 7

|-| |-|

8 9 A B

  • 上一篇:黃山有學蛋糕西點的地方嗎?
  • 下一篇:AI畫星球大戰關鍵詞分享
  • copyright 2024編程學習大全網