1. 程式人生 > >4.5 使用元組-非平衡二叉樹

4.5 使用元組-非平衡二叉樹

delete(Key, nil) ->
    nil;

delete(Key, {Key,_,nil,nil}) ->
    nil;

delete(Key, {Key,_,Smaller,nil}) ->
    Smaller;

delete(Key, {Key,_,nil,Bigger}) ->
    Bigger;

delete(Key, {Key1,_,Smaller,Bigger}) when Key == Key1 ->
    {K2,V2,Smaller2} = deletesp(Smaller),
    {K2,V2,Smaller2,Bigger};

delete(Key, {Key1,V,Smaller,Bigger}) when Key < Key1 ->
    {Key1,V,delete(Key, Smaller),Bigger};

delete(Key, {Key1,V,Smaller,Bigger}) when Key > Key1 ->
    {Key1,V,Smaller,delete(Key, Bigger)}.