本文實(shí)例為大家分享了java實(shí)現(xiàn)按層遍歷二叉樹(shù),按層遍歷二叉樹(shù)可以通過(guò)隊(duì)列來(lái)實(shí)現(xiàn)。其主要思路如下:
創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比昭陽(yáng)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式昭陽(yáng)網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋昭陽(yáng)地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。
1、先將根節(jié)點(diǎn)放入隊(duì)列中
2、每次都從隊(duì)列中取出一個(gè)結(jié)點(diǎn)打印該結(jié)點(diǎn)的值
3、若這個(gè)結(jié)點(diǎn)有子結(jié)點(diǎn),則將它的子結(jié)點(diǎn)放入隊(duì)列尾,知道隊(duì)列為空。
實(shí)現(xiàn)代碼如下:
import java.util.LinkedList; import java.util.Queue; public class LayerTranverse { //按層遍歷二叉樹(shù) public static void main(String[] args) { BinaryTree1 biTree1=new BinaryTree1(); int[] data={2,8,7,4,9,3,1,6,5}; biTree1.buildTree1(data); biTree1.layerTranverse(); } } class Node1{ public int data; public Node1 left; public Node1 right; public Node1(int data){ this.data=data; this.left=null; this.right=null; } } class BinaryTree1{ private Node1 root; public BinaryTree1(){ root=null; } //將data數(shù)據(jù)插入到排序的二叉樹(shù)中 public void insert1(int data){ Node1 newNode1=new Node1(data); if(root==null){ root=newNode1; }else{ Node1 current=root; Node1 parent; while(true){ parent=current; if(dataq=new LinkedList (); q.add(this.root); while(!q.isEmpty()){ Node1 n=q.poll(); System.out.print(n.data); System.out.print(" "); if(n.left!=null){ q.add(n.left); } if(n.right!=null){ q.add(n.right); } } } }
運(yùn)行結(jié)果為:
2 1 8 7 9 4 3 6 5
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。