欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

java中序遍歷代碼 中序遍歷怎么數(shù)

Java 先、中、后序遍歷方法的實現(xiàn)

前pre(root)

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,平南企業(yè)網(wǎng)站建設,平南品牌網(wǎng)站建設,網(wǎng)站定制,平南網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,平南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

{ if(root==null)return null;

visit(root);pre(root.left);pre(root.right);

}

中in(root)

{ if(root==null)return null;

in(root.left);visit(root);in(root.right);

}

后post(root)

{ if(root==null)return null;

post(root.left);post(root.right);visit(root);

}

Java幾種簡單的排序源代碼

給你介紹4種排序方法及源碼,供參考

1.冒泡排序

主要思路: 從前往后依次交換兩個相鄰的元素,大的交換到后面,這樣每次大的數(shù)據(jù)就到后面,每一次遍歷,最大的數(shù)據(jù)到達最后面,時間復雜度是O(n^2)。

public?static?void?bubbleSort(int[]?arr){

for(int?i?=0;?i??arr.length?-?1;?i++){

for(int?j=0;?j??arr.length-1;?j++){

if(arr[j]??arr[j+1]){

arr[j]?=?arr[j]^arr[j+1];

arr[j+1]?=?arr[j]^arr[j+1];

arr[j]?=?arr[j]^arr[j+1];

}

}

}

}

2.選擇排序

主要思路:每次遍歷序列,從中選取最小的元素放到最前面,n次選擇后,前面就都是最小元素的排列了,時間復雜度是O(n^2)。

public?static?void?selectSort(int[]?arr){

for(int?i?=?0;?i?arr.length?-1;?i++){

for(int?j?=?i+1;?j??arr.length;?j++){

if(arr[j]??arr[i]){

arr[j]?=?arr[j]^arr[i];

arr[i]?=?arr[j]^arr[i];

arr[j]?=?arr[j]^arr[i];

}

}

}

}

3.插入排序

主要思路:使用了兩層嵌套循環(huán),逐個處理待排序的記錄。每個記錄與前面已經(jīng)排好序的記錄序列進行比較,并將其插入到合適的位置,時間復雜度是O(n^2)。

public?static?void?insertionSort(int[]?arr){

int?j;

for(int?p?=?1;?p??arr.length;?p++){

int?temp?=?arr[p];???//保存要插入的數(shù)據(jù)

//將無序中的數(shù)和前面有序的數(shù)據(jù)相比,將比它大的數(shù),向后移動

for(j=p;?j0??temp?arr[j-1];?j--){

arr[j]?=?arr[j-1];

}

//正確的位置設置成保存的數(shù)據(jù)

arr[j]?=?temp;

}

}

4.希爾排序

主要思路:用步長分組,每個分組進行插入排序,再慢慢減小步長,當步長為1的時候完成一次插入排序,? 希爾排序的時間復雜度是:O(nlogn)~O(n2),平均時間復雜度大致是O(n^1.5)

public?static?void?shellSort(int[]?arr){

int?j?;

for(int?gap?=?arr.length/2;?gap??0?;?gap/=2){

for(int?i?=?gap;?i??arr.length;?i++){

int?temp?=?arr[i];

for(j?=?i;?j=gap??temparr[j-gap];?j-=gap){

arr[j]?=?arr[j-gap];

}

arr[j]?=?temp;

}

}

}

java Map 怎么遍歷

java Map 遍歷一般有四種方式

方式一: 這是最常見的并且在大多數(shù)情況下也是最可取的遍歷方式。在鍵值都需要時使用。

方式二: 在for-each循環(huán)中遍歷keys或values。

如果只需要map中的鍵或者值,你可以通過keySet或values來實現(xiàn)遍歷,而不是用entrySet。

該方法比entrySet遍歷在性能上稍好(快了10%),而且代碼更加干凈。

方式三:使用Iterator遍歷

使用泛型:

不使用泛型:

你也可以在keySet和values上應用同樣的方法。

方法四:? 通過鍵找值遍歷(效率低)

作為方法一的替代,這個代碼看上去更加干凈;但實際上它相當慢且無效率。

因為從鍵取值是耗時的操作(與方法一相比,在不同的Map實現(xiàn)中該方法慢了20%~200%)。如果安裝了FindBugs,它會做出檢查并警告你關于哪些是低效率的遍歷。所以盡量避免使用。

總結(jié):

如果僅需要鍵(keys)或值(values)使用方法二。

如果所使用的語言版本低于java 5,或是打算在遍歷時刪除entries,必須使用方法三。

否則使用方法一(鍵值都要)。

擴展資料:

類似的遍歷算法:

二叉樹的遍歷算法

1、先(根)序遍歷的遞歸算法定義:

若二叉樹非空,則依次執(zhí)行如下操作:

⑴ 訪問根結(jié)點;

⑵ 遍歷左子樹;

⑶ 遍歷右子樹。

2、中(根)序遍歷的遞歸算法定義:

若二叉樹非空,則依次執(zhí)行如下操作:

⑴遍歷左子樹;

⑵訪問根結(jié)點;

⑶遍歷右子樹。

3、后(根)序遍歷得遞歸算法定義:

若二叉樹非空,則依次執(zhí)行如下操作:

⑴遍歷左子樹;

⑵遍歷右子樹;

⑶訪問根結(jié)點。

參考資料:百度百科——Java

java中輸入100個數(shù)據(jù)再排序后輸出的代碼

既然在學數(shù)據(jù)結(jié)構,那就用二叉樹排序吧,一個根節(jié)點,比根節(jié)點小的排左邊,比根節(jié)點大的排右邊,以此類推,形成二叉樹,再遍歷輸出即可。這個例子掌握了,你就多學了一種數(shù)據(jù)結(jié)構

class BinaryTree

{

class Node

{

private int data; //保存數(shù)據(jù)內(nèi)容

private Node left; //左子樹

private Node right;//右子樹

public Node(int data){

this.data = data;

}

public void addNode(Node newNode){ //addNode方法用來添加數(shù)據(jù)

if(newNode.data = this.data){

if(this.left == null){ //左子樹為空

this.left = newNode;

}else{

this.left.addNode(newNode);//繼續(xù)向下判斷

}

}

if(newNode.data this.data){

if(this.right == null){ //右子樹為空

this.right = newNode;

}else{

this.right.addNode(newNode);//繼續(xù)向下判斷

}

}

} //addNode方法結(jié)束

public void printNode(){ //采用中序遍歷(左-根-右)

if(this.left != null){

this.left.printNode();

}

System.out.println(this.data); //找到根內(nèi)容

if(this.right != null){

this.right.printNode();

}

}

} //Node類結(jié)束

private Node root; //根節(jié)點

public void add(int data){

Node newNode = new Node(data);

if(this.root == null){

this.root = newNode;

}else{

this.root.addNode(newNode);

}

}

public void print(){

this.root.printNode();

}

}

public class Demo

{

public static void main(String args[]){

BinaryTree bt = new BinaryTree();

bt.add(3);

bt.add(4);

bt.add(0);

bt.add(1);//可添加100個數(shù)據(jù),也可通過args[]手動輸入,需略做調(diào)整

bt.print();

}

}

文章標題:java中序遍歷代碼 中序遍歷怎么數(shù)
分享地址:http://aaarwkj.com/article20/docjhco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站制作、做網(wǎng)站、手機網(wǎng)站建設定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管
背德人妻中文字幕无修| 欧美国产成人精品一区| 亚洲欧美日韩另类自拍| 日本人妻丰满熟妇久久| 好狼色欧美激情国产区| 国产午夜三级视频在线观看| 欧美黄色一区二区在线观看| 欧美av精品一区二区三区| 高颜值美女后入内射视频| 亚洲精品国产第一区第二区| 日韩女优在线播放一区二区| 青草草在线观看视频| 亚洲精品在线观看日本| 欧美国产精品久久综合| 国产一区二区黄色录像| 日韩视频专区一区二区| 日本不卡不二三区在线看| 日韩精品 在线一区二区| 综合国产精品久久久久久| 日韩精品一二三黄色一级| 国产免费观看久久黄av片涩av| 日韩免费黄色av网站| 国产激情福利一区二区| 日韩高清在线不卡视频| 日韩国产传媒视频在线观看| 精品国产欧美亚洲91| 91精品国产高清久久福利| 蜜臀av首页在线观看| 日本精品1区国产精品| 亚洲高清成人综合网站| 日本不卡一区二区视频| 欧美三级在线完整版免费| 免费中文字幕av电影| 日本韩国黄色三级三级| 人人妻人人澡人人爽人人精品| 亚洲欧美精品成人一区| 密臀av一区二区三区| 国产亚洲精品久在线| 日韩高清一级黄色大片网站| 日本高清免费观看一区| 亚洲一区二区精品偷拍|