日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java实现 - 树的层序遍历

發布時間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现 - 树的层序遍历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

樹:

樹實體結構:

@Data public class Tree {//樹的data值private String dataStr;//樹的第一個孩子節點private Tree firstChild;//樹的下一個孩子節點private Tree nextBrother; }

代碼實現:

public class TreeTraversal {//隊列,先進先出private static ConcurrentLinkedQueue<Tree> queue = new ConcurrentLinkedQueue<>();//初始化樹結構private static Tree G = new Tree("G", null, null);private static Tree F = new Tree("F", null, G);private static Tree E = new Tree("E", null, null);private static Tree D = new Tree("D", null, null);private static Tree C = new Tree("C", F, D);private static Tree B = new Tree("B", E, C);private static Tree A = new Tree("A", B, null);public static void main(String[] args) {TreeTraversal(A);}//層序遍歷public static void TreeTraversal(Tree root) {Tree pTree;//父節點Tree broTree;//兄弟節點//A 根節點及其兄弟節點放入隊列queue.add(root);while (null != root.getNextBrother()) {queue.add(root.getNextBrother());root = root.getNextBrother();}while (!queue.isEmpty()) {//隊列不為空,取出頭節點 作為父節點pTree = queue.poll();System.out.println(pTree.getDataStr());//如果當前 父節點 有子節點 ,將子節點放入隊列if(null!=pTree.getFirstChild()){queue.add(pTree.getFirstChild());//如果當前父節點 的子節點 有兄弟節點 ,將兄弟節點放入隊列broTree = pTree.getFirstChild().getNextBrother();while (null != broTree) {queue.add(broTree);broTree = broTree.getNextBrother();}}}} }

輸出結果:

總結

以上是生活随笔為你收集整理的java实现 - 树的层序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。