public T _GetOrInit(int ind) { BinaryTree_Branch current = this; while (current.myindex != ind) { BinaryTree_Branch next = ind > current.myindex ? current.right : current.left; if (next == null) { next = new BinaryTree_Branch(ind); if (ind > current.myindex) { current.right = next; } else { current.left = next; } return(next.data); } current = next; } return(current.data); }
public T GetOrInit(int ind) { if (root == null) { root = new BinaryTree_Branch(ind); return(root.data); } return(root._GetOrInit(ind)); }
public T _Get(int ind) { BinaryTree_Branch current = this; while (current.myindex != ind) { current = ind > current.myindex ? current.right : current.left; if (current == null) { return(default(T)); } } return(current.data); }