二叉樹子樹的刪除

2021-09-10 14:19:09 字數 1435 閱讀 7233

package 二叉樹子樹的刪除;

public class binarytree

public treenode getroot()

//前序

public void frontshow()

else

}//中序

public void midshow()

else

}//後序

public void aftershow() 

else

}//前序查詢

public  treenode frontsearch(int i)

public void delete(int i) else

}public static void main(string args)   

}class treenode

//前序查詢

public treenode frontsearch(int i) else

//如果不為空,則查詢成功

if(target!=null)

//查詢右節點

if(rightnode!=null) 

}return target;

}//前序遍歷(根,左,右)

public void frontshow()

//右節點

if(rightnode!=null)

}//中序遍歷(左,根,右)

public void midshow()

//在遍歷當前節點(根節點);

system.out.print(value);

//最後右節點

if(rightnode!=null)

}//後序遍歷(左,右,根)

public void aftershow()

//在右節點

if(rightnode!=null)

//最後遍歷當前節點(根節點);

system.out.print(value);

}//刪除二叉樹的子樹

public void delete(int i)

//判斷右孩子

if(parent.rightnode!=null&&parent.rightnode.value==i) 

//如果都不是,遞迴檢查並刪除左孩子

parent=leftnode;

if(parent!=null)

//遞迴檢查並刪除右孩子

parent=rightnode;

if(parent!=null)

}//設定左孩子

public void setleftnode(treenode lnode)

//設定右孩子

public void setrightnode(treenode rnode)

}此二叉樹為空 ;

二叉樹和最大的子樹

問題描述 給乙個二叉樹,每個節點都是正或負整數,如何找到乙個子樹,它所有節點的和最大?思路 採用自底向上的計算。先計算左右子樹總和值,用左右子樹的總和加上當前節點值,如果當前總和大於最大值,則更新最大值,同時將最大子樹根節點更新為當前根。簡單說,就是後序遍歷。cpp view plain copy ...

二叉樹的子樹 解題報告

time limit 3000ms memory limit 65536k description 如上圖所示,由正整數1,2,3 組成了一顆二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後...

二叉樹 判斷二叉樹是否另一棵二叉樹的子樹

給定兩個二叉樹s和t,判斷t是否為s的子樹。方法一 進行對比時,s不是從根節點開始的,而t是從根節點開始的,因此,可以先計算t的高度,然後在s中找出所有高度和t相同的子樹,然後對比它們是否相同即可。class solution return false public int height treen...