java二叉樹代碼_JAVA語言實現二叉樹生成的代碼教程

本文主要向大家介紹了JAVA語言實現二叉樹生成的代碼教程,通過具體的內容向大家展示,希望對大家學習JAVA語言有所幫助。

給定某二叉樹三序遍歷中的兩個,我們即可以通過生成該二叉樹,并遍歷的方法,求出剩下的一序,具體代碼如下

package?Tree;

import?java.io.BufferedInputStream;

import?java.util.*;

public?class?BT?{

class?Node{

Node?l;//左兒子

Node?r;//右兒子

char?c;//結點字符

public?Node(char?c)?{

this.c?=?c;

this.l?=?null;

this.r?=?null;

}

}

Node?root;

char[]?str1,str2;

public?BT()?{

root?=?null;

}

public?void?postOrder(Node?n)?{

if(n.l!=null)?{

postOrder(n.l);

}

if(n.r!=null)?{

postOrder(n.r);

}

System.out.print(n.c);

}

public?void?firstOrder()?{

this.firstOrder(this.root);

}

public?void?firstOrder(Node?n)?{

System.out.print(n.c);

if(n.l!=null)?{

firstOrder(n.l);

}

if(n.r!=null)?{

firstOrder(n.r);

}

}

public?void?postOrder()?{

this.postOrder(this.root);

}

public?Node?build(int?s1,int?e1,int?s2,int?e2)?{

char?c?=?str1[s1];

Node?Root?=?new?Node(c);

int?index?=?0;

for(int?i?=?s2;i<=e2;i++)?{

if(str2[i]==c)?{

index?=?i;

break;

}

}

if(index!=s2)?{//如果左子樹不為空

Root.l?=?build(s1+1,s1+index-s2,s2,index-1);

}

if(index!=e2)?{//如果右子樹不為空

Root.r?=?build(s1+index-s2+1,e1,index+1,e2);

}

return?Root;

}

public?Node?build1(int?s1,int?e1,int?s2,int?e2)?{//中后序還原樹

char?c?=?str2[e2];

Node?Root?=?new?Node(c);

int?index?=?0;

for(int?i?=?s1;i<=e1;i++)?{

if(str1[i]==c)?{

index?=?i;

break;

}

}

if(index!=s1)?{

Root.l?=?build1(s1,index-1,s2,s2+index-s1-1);

}

if(index!=e1)?{

Root.r?=?build1(index+1,e1,s2+index-s1+1,e2-1);

}

return?Root;

}

public?static?void?main(String[]?args)?{

String?s1,s2?=?null;

Scanner?sc?=?new?Scanner(new?BufferedInputStream(System.in));

BT?bt?=?new?BT();

while(sc.hasNext())?{

s1?=?sc.next();

s2?=?sc.next();

bt.str1?=?new?char[s1.length()];

bt.str2?=?new?char[s1.length()];

bt.str1?=?s1.toCharArray();

bt.str2?=?s2.toCharArray();

bt.root?=?bt.build1(0,?s1.length()-1,?0,?s1.length()-1);

bt.firstOrder();

}

}

}

其中build是已知前中序,生成二叉樹;build1是已知中后序,生成二叉樹.

本文由職坐標整理并發布,希望對同學們有所幫助。了解更多詳情請關注編程語言JAVA頻道!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371736.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一個回到頂部的錨點

一般網站的右下角都會有一個回到頂部的錨點&#xff0c;但是在沒有學bootstrap的時候&#xff0c;我還是會想著用定位來做這個東西&#xff0c;但是現在用bootstrap來做的&#xff0c;所以將它記錄下來。 <!DOCTYPE html><html> <head><title>附加導航…

jquery jgrid filterToolBar beforeSearch 修改postData

beforeSearch: function() { var posted_data $("#mygrid").jqGrid(getGridParam,postData); posted_data ["testp"]"helloTest"; }轉載于:https://www.cnblogs.com/qiumingcheng/p/7141671.html

預告片:裸指關節SOA

我正在研究這個想法&#xff0c;但我不知道它是否對你們有吸引力。 我想就您是否需要進一步探討提出您的意見。 達成協議&#xff1a;我遇到過一些團隊&#xff0c;他們在使用SOA技術時由于其工具的復雜性而陷入泥潭。 我只在Java中看到過這種情況&#xff0c;但是我從一些C&am…

網頁轉圖片 java_java-網頁轉圖片

對比了網上常用的好幾種網頁轉圖片的開源插件&#xff0c;最后效果還不如使用原生的java直接寫來得好&#xff0c;上代碼&#xff0c;很簡單&#xff0c;中間需要考慮網頁加載延遲的問題&#xff0c;所以需要加上thread.sleep&#xff0c;休眠一下等待網頁加載完成了&#xff0…

開一個新坑吧

每天讀讀日志 給自己動力 開個新坑&#xff08;外星殖民&#xff09; 無聊時寫一寫 轉載于:https://www.cnblogs.com/dandansang/p/7143489.html

JMX和Spring –第1部分

這是三篇文章的第一篇&#xff0c;這三篇文章將展示如何通過JMX支持為Spring應用程序賦能。 Maven配置 這是用于設置此示例代碼的Maven pom.xml&#xff1a; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSche…

maven exclude java_java – Maven:從shade插件中排除依賴項

我在mvn clean install之后看過下一個字符串Including com.sun.jersey.contribs:jersey-multipart:jar:1.5 in theshaded jar問題&#xff1a;即使我已經為maven-shade-plugin添加了exlusion,我也無法使它沒有陰影(參見下面的代碼)我的maven-shade-plugin&#xff1a;org.apach…

JMX和Spring –第3部分

本文是本系列的最后一篇。 看一下第1 部分和第2部分 。 在本系列的最后一篇文章中&#xff0c;我將展示如何在JDK中使用本機JMX支持來實現一種通知機制&#xff0c;該機制可以在HEAP內存超過特定閾值時向偵聽器發出警報。 正如我在上一篇文章中討論的那樣&#xff0c;這種方法…

QScrollArea不能顯示滾動條

轉載請注明出處&#xff1a;http://www.cnblogs.com/dachen408/p/7147141.html 問題&#xff1a;QScrollArea不能顯示滾動條 解決方案&#xff1a;設置QScrollArea->setWidgetResizeable&#xff08;false&#xff09;解決問題。 例子&#xff1a; ui.scrollArea->setWi…

java婚慶網站源碼_基于jsp的婚慶網站-JavaEE實現婚慶網站 - java項目源碼

基于jspservletpojomysql實現一個javaee/javaweb的婚慶網站, 該項目可用各類java課程設計大作業中, 婚慶網站的系統架構分為前后臺兩部分, 最終實現在線上進行婚慶網站各項功能,實現了諸如用戶管理, 登錄注冊, 權限管理等功能, 并實現對各類婚慶網站相關的實體進行管理。該婚慶…

JQuery實現的模塊交換動畫效果

<!doctype html> <html><head><meta http-equiv"content-type" content"text/html;charsetutf-8" /><title>JQuery實現的模塊交換動畫效果</title><meta name"Keywords" content"jquery&#xff0c…

CKD 實現

主要功能&#xff1a;1、新物料&#xff08;部品號&#xff09;的入庫管理 部品號的驗證、描述、品名、重量、單價等 2、部品號-供應商的核對 校驗部品號/供應商的對應情況、入庫、移除等 3、BOM清單的導入 基礎清單的導入 4、訂單 CKD套件管理 物料齊套管理 箱單管理 匯總 5、…

JMX和Spring –第2部分

這篇文章從本教程的第1部分繼續。 嗨&#xff0c;在我的前一篇文章中&#xff0c;我解釋了如何通過Spring設置JMX服務器以及如何通過身份驗證和授權保護對它的訪問。 在本文中&#xff0c;我將展示如何實現一個簡單的MBean&#xff0c;該MBean允許用戶在運行時更改Log4j記錄器…

android p wifi一直在掃描_(一百六十八)Android P wifi 掃描失敗結果上報流程梳理-掃描上報梳理②...

接(一百五十五)Android P wifi 掃描失敗結果上報流程梳理-掃描上報梳理 掃描失敗上報梳理發現梳理的差了很多&#xff0c;特補充1.WificondScannerImplOverridepublic boolean startSingleScan(WifiNative.ScanSettings settings,WifiNative.ScanEventHandler eventHandler) {i…

(五)什么是RDD-JavaPython版Spark

什么是RDD 視頻教程&#xff1a; 1、優酷 2、YouTube RDD是個抽象類&#xff0c;全稱為Resilient Distributed Datasets&#xff0c;是一個容錯的、并行的數據結構&#xff0c;可以讓用戶顯式地將數據存儲到磁盤和內存中&#xff0c;并能控制數據的分區。同時&#xff0c;RDD還…

LazyInitializationException的四種解決方案–第1部分

在今天的帖子中&#xff0c;我們將討論常見的LazyInitializationException錯誤。 我們將看到四種避免該錯誤的方法&#xff0c;以及每種方法的優缺點。在本文的最后&#xff0c;我們將討論EclipseLink如何處理該異常。 為了看到LazyInitializationException錯誤并進行處理&…

linux驅動

jeffies hz xtime 每秒鐘系統時鐘節拍數 prco < 內核內存視窗 include/linux/list.h < 內核的數據結構&#xff0c;鏈表 workques_struct 工作隊列轉載于:https://www.cnblogs.com/asreg/p/7148606.html

java 條碼識別_條碼識別示例代碼

package api.jisuapi.barcode;import api.util.HttpUtil;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Read {public static final String APPKEY "your_appkey_here";// 你的appkeypublic static final String URL "https://ap…

終極JPA查詢和技巧列表–第2部分

這一部分是該系列文章的第一部分 。 JPA&#xff1a;NamedQuery&#xff0c;使用日期查詢&#xff0c;有關getSingleResult方法的警告 為了避免重復查詢代碼&#xff0c;提高性能并簡化維護查詢&#xff0c;我們可以使用NamedQueries。 NamedQuery使用JPQL作為語法&#xff0c…

設置UITableView設置contentsize

由于UITableView是繼承自UIScrollView的&#xff0c;所以他是可以設置contentsize的。 但是&#xff0c;我在試驗的過程中&#xff0c;初始化UITableView實例后&#xff0c;直接設置它的contentsize是不起作用&#xff0c;在搜尋相關資料得知&#xff0c;UITableView會自動設置…