題目要我寫一個delete element跟insert element in a BST的演算法
於是我就東湊西湊
終於寫出來了
但是不知道對不對
希望各位高手們幫我勘誤一下XD
首先是delete element....
function delete(x,T)
{
x=T-->Data;
d=Degree(T);
siwtch(d)
{
case"0": x=null;
break;
case"1": x-->Data=T-->Data;
free(x);
break;
case"2": finding minimum of x's right subtree replace x;
break;
}
}
function Degree(T)
{
if (T!=null)then
{
if (T-->Lchild=null&&T-->Rchild=null)then
return 0;
else if (T-->Lchild!=null&&T-->Rchild!=null)then
return 2;
else
return 1;
}
return T;
}
--------------------------------------------------------------------
接著是insert element
function insert(x, T)
{
if (T!=null)then
{
switch(compare(x,T-->Data))
{
case">": insert(x,T-->Rchild);
break;
case"<": insert(x,T-->Lchild);
break;
}
}
else
x=T-->Data;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.143.61.46