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

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)

綿陽服務器托管
黄色录像日本黄色录像| 日本黄色录像在线观看| 伊人激情一区二区三区| 五月天丁香婷婷深爱| 四虎永久精品在线视频| 欧美国产日韩在线播放| 亚洲高清中文字幕一区二三区| 日韩在线不卡免费视频一区| 日本人妻系列在线播放| 中国一区二区三区毛片| 日韩精品在线不卡一区| 哪里可以看黄色片日韩| 国产在线播放精品视频| 91麻豆亚洲国产成人久久精品| 亚洲综合偷拍欧美一区日韩| 91欧美精品午夜性色福利| 亚洲精品午夜久久久av | 麻豆亚洲av熟女国产| 一本在线不卡中文字幕| 粗暴蹂躏中文一区二区三区| 日本高清一区二区高清| 日本特黄特色三级在线观看| 97乱碰视频在线观看| 国产精品一区二区精品| 欧美内射专区精品一区| 国产男女在线视频观看| 国产高清剧情av网站| 免费特黄特黄的欧美大片| 可以看的黄色亚洲网站| 日本欧美三级高潮受不了| 久久国产精品成人免费蜜臀| 欧美亚洲国产日韩熟女| 亚洲风情亚av在线播放| 亚洲啪啪av一区二区三区| 色婷婷亚洲综合色一区二区| 精品人妻中文av一区二区| 射精视频在线观看免费| 免费毛片一区二区三区四区| 亚洲av最近在线观看| 黄色一级日本黄色一级| 久久国产精品一二三区|