Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static BST Algo_20170628_2_2_Miky(BST T, int a, int b)
- {
- BST last = null;
- var S = new Stack<BST>();
- while (S.Count > 0 || T != null)
- {
- if (T != null)
- {
- Console.WriteLine("Ispezionando " + T.key);
- S.Push(T);
- }
- if (T != null && (T.key < a || (T.key >= a && T.key <= b)))
- {
- T = T.Sx;
- }
- else
- {
- if (T == null)
- T = S.Peek();
- if (T.Dx != null && T.Dx != last && ((T.key > b) || (T.key >= a && T.key <= b)))
- {
- T = T.Dx;
- }
- else
- {
- S.Pop();
- last = T;
- if (T.key >= a && T.key <= b)
- {
- T = Cancella(T);
- if (S.Count > 0)
- {
- var P = S.Peek();
- if (P.dx == last)
- P.dx = T;
- else if (P.sx == last)
- P.sx = T;
- }
- if (T != null)
- last = T;
- }
- T = null;
- }
- }
- }
- return last;
- }
- public static BST Algo_20170628_2_2(BST T, int a, int b)
- {
- if (T != null)
- {
- Console.WriteLine("Ispezionando " + T.key);
- if (T.key < a)
- T.sx = Algo_20170628_2_2(T.sx, a, b);
- else if (T.key > b)
- T.dx = Algo_20170628_2_2(T.dx, a, b);
- else
- {
- T.sx = Algo_20170628_2_2(T.sx, a, b);
- T.dx = Algo_20170628_2_2(T.dx, a, b);
- T = Cancella(T);
- }
- }
- return T;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement