//POS-ORDEM - Recebe a arvore como parametro public void postOrder(Node theRoot) { if (!(theRoot == null)) { postOrder(theRoot.Left); postOrder(theRoot.Right); theRoot.DisplayNode(); } }
public void insert(int v) { Node newNode = new Node(); // Instancia um novo nó newNode.Data = v; //o valor (atributo Data) do nó recebe v (valor aleatório que passei como parametro) if (root == null) // se a arvore for vazia, inicia uma nova árvore { root = newNode; } else //se a árvore nao estiver vazia, a inserção será feita em seu devido lugar { Node current = root; //ramificação atual Node parent; //ramificação ancestral while (true) //a condição de parada não é variável, o laço while será parado pela condição 'break', { //que indicará que o item inserido chegou na raiz da árvore parent = current; if (v < current.Data) // se o nó a ser inserido for menor que o nó a ser comparado { current = current.Left; // nó corrente recebe o nó que está a esquerda do nó corrente if (current == null) // se o nó corrente for vazio { parent.Left = newNode; // o nó que está a esquerda do nó ancestral recebe o novo nó break; } } else // se o nó a ser inserido for maior que o nó a ser comparado { current = current.Right; // nó corrente recebe o nó que está a direita do nó corrente if (current == null) // se o nó corrente for vazio { parent.Right = newNode; // o nó que está a esquerda do nó ancestral recebe o novo nó break; } } } } }
public Node root; //CRIA UM OBJETO 'root' DO TIPO NÓ('node') #endregion Fields #region Constructors public BST() { root = null; //Crio uma nova BST assim que algum objeto instanciar a classe BST }