package org.lulu.learn;
/** * project: day06
* created: lulu
* date: 2016/8/3
* * 如何用樹形結構儲存資料
*/// 必須讓型別自己可以比較, 泛型不可以用實現implements 關鍵字
public class treenode>
public
void add(t t)
int i =
data
.compareto(t);//比較結果
if (i <
0) else
} //此處不能用else因為還有i = 0的情況, 就不做處理
if (i >
0) else }}
//刪除非葉結點: 可以找該節點的左側節點的最右邊的值
//或者找該節點的右側節點的最左邊的值提上來
public
void remove(t t)
if (i <
0) //要刪除的就是當前的節點
if (i ==
0) else
} else
if (left !=
null) else
} else else
}}elseelse
} else
if(left !=
null)else
}else}}
}private t removefinalleft() else
}private t removefinalright() else
}@override
public
string tostring()
if (right !=
null)
return builder.tostring();
}public t getdata()
public
void setdata(t data)
public treenode getleft()
public
void setleft(treenode left)
public treenode getright()
public
void setright(treenode right)
public treenode getparent()
public
void setparent(treenode
parent)
}
二叉樹(補充)
1.二叉樹的下乙個節點 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷 左,根,右 順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。2 當前節點的右子樹不存在且當前節點是其父節點的左子節點,則其父節點就是下一節點。3 當前節點的右子樹不存在且當前節點是其父節點...
資料儲存 二叉樹
二叉樹 binary tree 是樹形結構的乙個重要型別。許多實際問題抽象出來的資料結構往往是二叉樹形式,即使是一般的樹也能簡單地轉換為二叉樹,而且二叉樹的儲存結構及其演算法都較為簡單,因此二叉樹顯得特別重要。二叉樹特點是每個結點最多只能有兩棵子樹,且有左右之分。二叉樹是n個有限元素的集合,該集合或...
資料儲存 二叉樹的鏈式儲存
陣列表示法用於完全二叉樹的儲存表示非常有效,但表示一般二叉樹則不是很理想。此外,在一棵樹中進行插入和刪除操作時,為了反應結點層次的變動,可能需要移動許多的結點,這樣降低了演算法的效率,而使用了鍊錶表示可以克服這樣的缺點。根據二叉樹的定義,可以設計出二叉樹節點的構造。二叉樹的每乙個結點至少應該包括三個...