資源簡介
本代碼由java語言實現二叉樹的各種操作
包括樹的創建,查找,刪除,按層遍歷,輸出所有路徑,中序遍歷等操作

代碼片段和文件信息
//本代碼包括樹的創建,查找,刪除,按層遍歷,輸出所有路徑,中序遍歷等操作
package?com.xie.src;
class?node{
int?number;
node?left;
node?right;
}
class?tree{
public?node?rootnode;
tree(){
rootnode?=?null;
}
void?insert(node?in){//插入
node?temp?=?rootnode;
if(rootnode?==?null){
rootnode?=?in;
return;
}
while(temp?!=?null){
if(in.number?==?temp.number){
break;
}else?if(in.number?>?temp.number){
if(temp.right?==?null){
temp.right?=?in;
break;
}else{
temp?=?temp.right;
}
}else{
if(temp.left?==?null){
temp.left?=?in;
break;
}else{
temp?=?temp.left;
}
}
}
}
node?find(int?num){//查找
node?temp?=?rootnode;
while(temp?!=?null){
if(temp.number?==?num){
break;
}else?if(num?>?temp.number){
temp?=?temp.right;
}else{
temp?=?temp.left;
}
}
return?temp;
}
void?copy(node?dest?node?src){
if(dest?!=?null?&&?src?!=?null){
dest.number?=?src.number;
}
}
void?findbylayer(){?//按層遍歷
int?front?rear;
node[]?na;
node?temp=?rootnode;
na?=?new?node[100];
front?=?rear?=?0;
while(temp?!=?null){
if(rear?==?0){
na[front]?=?rootnode;
rear++;
}else{
temp?=?na[++front];
}
if(front?>=?rear?||?temp?==?null){
break;
}
System.out.println(“?“?+?temp.number?+?“?index?=?“?+?front);
if(temp.left?!=?null){
na[rear++]?=?temp.left;
}
if(temp.right?!=?null){
na[rear++]?=?temp.right;
}
}
for(int?i?=?0;?i? System.out.print(“?“?+?na[i].number);
}
System.out.println();
}
void?delete(node?in){//刪除
node?parent?=?null;
node?child?=?rootnode;
node?temp;
boolean?leftside?=?true;
if(child?==?null){
return;
}
while(child?!=?null){
if(child.number?==?in.number){
break;
}else?if(child.number?>?in.number){
parent?=?child;
child?=?child.left;
leftside?=?true;
}else{
parent?=?child;
child?=?child.right;
leftside?=?false;
}
}
if(child?==?null){
System.out.println(“Cannot?find?the?num?“?+?in.number);
return;
}
if(child.number?==?rootnode.number){
if(rootnode.left?==?null?&&?rootnode.right?==?null){
rootnode?=?null;
}
if(rootnode.left?!=?null?&&?rootnode.right?==?null){
rootnode?=?rootnode.left;
return;
}else?if(rootnode.left?==?null?&&?rootnode.right?!=?null){
rootnode?=?rootnode.right;
return;
}
}
if(child.left?==?null?&&?child.right?==?null){//葉子節點
if(leftside){
parent.left?=?null;
}else{
parent.right?=?null;
}
}else?if(child.left?!=?null?&&?child.right?==?null){
if(leftside){
parent.left?=?child.left;
}else{
parent.right?=?child.left;
}
}else?if(child.right?!=?null?&&?child.left?==?null){
if(leftside){
parent.left?=?child.right;
}else{
p
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2011-07-19?13:51??myjavatest\
?????文件?????????295??2011-07-19?13:50??myjavatest\.classpath
?????文件?????????386??2011-07-19?13:50??myjavatest\.project
?????目錄???????????0??2011-07-19?13:50??myjavatest\.settings\
?????文件?????????629??2011-07-19?13:50??myjavatest\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2011-07-19?13:51??myjavatest\com\
?????目錄???????????0??2011-07-19?13:51??myjavatest\com\xie\
?????目錄???????????0??2011-10-11?15:07??myjavatest\com\xie\src\
?????文件????????1096??2011-10-14?17:37??myjavatest\com\xie\src\MyJavaTest.class
?????文件????????5889??2011-10-14?17:37??myjavatest\com\xie\src\MyJavaTest.java
?????文件?????????319??2011-10-14?17:37??myjavatest\com\xie\src\node.class
?????文件????????4297??2011-10-14?17:37??myjavatest\com\xie\src\tree.class
- 上一篇:java程序自動重新啟動
- 下一篇:jdbc 讀取表結構
評論
共有 條評論