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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

树节点的遍历,查找,删除(前序,中序,后序)

發(fā)布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树节点的遍历,查找,删除(前序,中序,后序) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

二叉樹模板類:

class BinaryTree {private Node root;public void setRoot(Node root) {this.root = root;}//刪除結點public void delNode(int no) {}//前序遍歷public void preOrder() {}//中序遍歷public void infixOrder() {}//后序遍歷public void postOrder() {}//前序遍歷public HeroNode preOrderSearch(int no) {}//中序遍歷public HeroNode infixOrderSearch(int no) {}//后序遍歷public HeroNode postOrderSearch(int no) {} }

樹節(jié)點模板類:

class HeroNode {private int no;private String name;private HeroNode left; //默認nullprivate HeroNode right; //默認null

1.遍歷

樹的遍歷分為: 廣度優(yōu)先遍歷:一層一層從左到右進行遍歷(借助隊列) 深度優(yōu)先遍歷:①先序遍歷、每個結點的遍歷都滿足根結點、左結點、右結點(均借助棧)②中序遍歷、每個結點的遍歷都滿足左結點、根結點、右結點③后序遍歷、每個結點的遍歷都滿足左結點、右結點、根結點

  • 前序遍歷:先輸出父節(jié)點,再遍歷左子樹和右子樹
public void preOrder() {if(this.root != null) {this.root.preOrder();}else {System.out.println("二叉樹為空,無法遍歷");}}
  • 中序遍歷:先遍歷左子樹,再輸出父節(jié)點,再遍歷右子樹
public void infixOrder() {if(this.root != null) {this.root.infixOrder();}else {System.out.println("二叉樹為空,無法遍歷");}}
  • 后序遍歷:先輸出左子樹,再遍歷右子樹 ,最后輸出父節(jié)點
public void postOrder() {if(this.root != null) {this.root.postOrder();}else {System.out.println("二叉樹為空,無法遍歷");}}

2.查找

  • 前序查找
public Node preOrderSearch(int no) {System.out.println("進入前序遍歷");//比較當前結點是不是if(this.no == no) {return this;}//1.則判斷當前結點的左子節(jié)點是否為空,如果不為空,則遞歸前序查找//2.如果左遞歸前序查找,找到結點,則返回Node resNode = null;if(this.left != null) {resNode = this.left.preOrderSearch(no);}if(resNode != null) {//說明我們左子樹找到return resNode;}//1.左遞歸前序查找,找到結點,則返回,否繼續(xù)判斷,//2.當前的結點的右子節(jié)點是否為空,如果不空,則繼續(xù)向右遞歸前序查找if(this.right != null) {resNode = this.right.preOrderSearch(no);}return resNode;}
  • 中序查找
public Node infixOrderSearch(int no) {//判斷當前結點的左子節(jié)點是否為空,如果不為空,則遞歸中序查找Node resNode = null;if(this.left != null) {resNode = this.left.infixOrderSearch(no);}if(resNode != null) {return resNode;}System.out.println("進入中序查找");//如果找到,則返回,如果沒有找到,就和當前結點比較,如果是則返回當前結點if(this.no == no) {return this;}//否則繼續(xù)進行右遞歸的中序查找if(this.right != null) {resNode = this.right.infixOrderSearch(no);}return resNode;}
  • 后序查找
public Node postOrderSearch(int no) {//判斷當前結點的左子節(jié)點是否為空,如果不為空,則遞歸后序查找Node resNode = null;if(this.left != null) {resNode = this.left.postOrderSearch(no);}if(resNode != null) {//說明在左子樹找到return resNode;}//如果左子樹沒有找到,則向右子樹遞歸進行后序遍歷查找if(this.right != null) {resNode = this.right.postOrderSearch(no);}if(resNode != null) {return resNode;}System.out.println("進入后序查找");//如果左右子樹都沒有找到,就比較當前結點是不是if(this.no == no) {return this;}return resNode;}

3. 刪除節(jié)點(基于無序的二叉樹)

//遞歸刪除結點//1.如果刪除的節(jié)點是葉子節(jié)點,則刪除該節(jié)點//2.如果刪除的節(jié)點是非葉子節(jié)點,則刪除該子樹public void delNode(int no) {//思路/** 1. 因為我們的二叉樹是單向的,所以我們是判斷當前結點的子結點是否需要刪除結點,而不能去判斷當前這個結點是不是需要刪除結點.2. 如果當前結點的左子結點不為空,并且左子結點 就是要刪除結點,就將this.left = null; 并且就返回(結束遞歸刪除)3. 如果當前結點的右子結點不為空,并且右子結點 就是要刪除結點,就將this.right= null ;并且就返回(結束遞歸刪除)4. 如果第2和第3步?jīng)]有刪除結點,那么我們就需要向左子樹進行遞歸刪除5. 如果第4步也沒有刪除結點,則應當向右子樹進行遞歸刪除.*///2. 如果當前結點的左子結點不為空,并且左子結點 就是要刪除結點,就將this.left = null; 并且就返回(結束遞歸刪除)if(this.left != null && this.left.no == no) {this.left = null;return;}//3.如果當前結點的右子結點不為空,并且右子結點 就是要刪除結點,就將this.right= null ;并且就返回(結束遞歸刪除)if(this.right != null && this.right.no == no) {this.right = null;return;}//4.我們就需要向左子樹進行遞歸刪除if(this.left != null) {this.left.delNode(no);}//5.則應當向右子樹進行遞歸刪除if(this.right != null) {this.right.delNode(no);}}

總結

以上是生活随笔為你收集整理的树节点的遍历,查找,删除(前序,中序,后序)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄网www | 精品美女久久 | 人人妻人人澡人人爽国产一区 | 阿v天堂2014 这里有精品 | 国产免费色视频 | 狠操av | 日韩精品一区二区三区视频在线观看 | 亚洲狼人干 | 一级不卡 | 亚洲自拍偷拍图 | 国产精品海角社区 | 欧美一二区 | 日韩五码在线 | 国产宾馆自拍 | 蜜桃tv在线观看 | 午夜免费小视频 | 爽插 | 日韩精品一区二区三区丰满 | 4438激情网 | 日韩一区二区高清视频 | 超碰在线进入 | 草草影院发布页 | 老司机在线看片 | 爱豆国产剧免费观看大全剧集 | 9191久久| 国产一区二区亚洲 | 日本美女交配 | 伊伊总综合网 | 久久久精品电影 | 国产精品久久久久久久无码 | 国产白浆在线观看 | 亚洲国产成人在线观看 | 亚洲丝袜中文字幕 | 能在线观看的av | 97超碰碰碰 | www婷婷av久久久影片 | 国产伦精品一区二区三区免费视频 | 欧美日韩三级视频 | 成人在线视频免费观看 | 中国老熟女重囗味hdxx | 国产福利视频在线观看 | 免费精品视频在线 | 久久久精品人妻一区二区三区 | 日韩一级片免费观看 | 免费成人高清在线视频 | 亚洲午夜精品久久久 | 好男人www日本 | 国产在线999 | 欧美日韩极品 | 精品人妻伦九区久久aaa片 | 欧美a视频 | 亚洲福利一区二区 | 国产香蕉一区二区三区 | 手机看片福利在线 | 99国产精品久久久久久久久久久 | 无码人妻少妇色欲av一区二区 | 午夜偷拍福利 | 丁香婷婷综合激情五月色 | 亚洲综合久久网 | 99re这里都是精品 | 免费www xxx| 久久免费网 | 国产免费无码一区二区视频 | 大陆熟妇丰满多毛xxxⅹ | av在线中文 | 无人在线观看高清视频 单曲 | 午夜天堂av | 秋霞网一区二区 | 3d毛片| 成人录像| 欧美日韩一级黄色片 | 久久夜色精品国产噜噜亚洲av | 久久免费视频精品 | 人人妻人人玩人人澡人人爽 | 尤物91| 香港三日本三级少妇66 | 屁屁影院国产第一页 | 欧美又大粗又爽又黄大片视频 | 一路向西在线看 | 日本一区不卡在线观看 | 国内自拍2020 | 人操人人 | 日本三级黄在线观看 | 一区二区在线观看视频 | 免费黄视频网站 | 日日爱夜夜操 | 亚洲精品自拍视频 | 国产精品嫩草久久久久 | 天堂中文在线资 | 成人h网站| 97欧美视频| 午夜性视频 | 亚洲成人免费av | 国产一区二区三区四区在线观看 | 亚洲精品视频一区二区 | 高清乱码毛片入口 | 欧美日韩黄色网 | 久久久久久九九九 | 懂色一区二区二区av免费观看 |