logo

Inserção

A função de inserção é usada para adicionar um novo elemento em uma árvore de pesquisa binária no local apropriado. A função de inserção deve ser projetada de tal forma que deve violar a propriedade da árvore de pesquisa binária em cada valor.

  1. Aloque a memória para a árvore.
  2. Defina a parte dos dados com o valor e defina os ponteiros esquerdo e direito da árvore, aponte para NULL.
  3. Se o item a ser inserido for o primeiro elemento da árvore, então a esquerda e a direita deste nó apontarão para NULL.
  4. Caso contrário, verifique se o item é menor que o elemento raiz da árvore, se isso for verdade, execute esta operação recursivamente com a esquerda da raiz.
  5. Se for falso, execute esta operação recursivamente com a subárvore direita da raiz.

Inserir (ÁRVORE, ITEM)

    Passo 1:SE ÁRVORE = NULO
    Alocar memória para TREE
    DEFINIR ÁRVORE -> DADOS = ITEM
    DEFINIR ÁRVORE -> ESQUERDA = ÁRVORE -> DIREITA = NULO
    OUTRO
    SE DADOS DO ITEM
    Inserir(ÁRVORE -> ESQUERDA, ITEM)
    OUTRO
    Inserir (ÁRVORE -> DIREITA, ITEM)
    [FIM DO SE]
    [FIM DO SE]Passo 2:FIM

inserção na árvore de pesquisa binária

Função C

 #include #include void insert(int); struct node { int data; struct node *left; struct node *right; }; struct node *root; void main () { int choice,item; do { printf('
Enter the item which you want to insert?
'); scanf('%d',&item); insert(item); printf('
Press 0 to insert more ?
'); scanf('%d',&choice); }while(choice == 0); } void insert(int item) { struct node *ptr, *parentptr , *nodeptr; ptr = (struct node *) malloc(sizeof (struct node)); if(ptr == NULL) { printf('can't insert'); } else { ptr -> data = item; ptr -> left = NULL; ptr -> right = NULL; if(root == NULL) { root = ptr; root -> left = NULL; root -> right = NULL; } else { parentptr = NULL; nodeptr = root; while(nodeptr != NULL) { parentptr = nodeptr; if(item data) { nodeptr = nodeptr -> left; } else { nodeptr = nodeptr -> right; } } if(item data) { parentptr -> left = ptr; } else { parentptr -> right = ptr; } } printf('Node Inserted'); } } 

Saída

 Enter the item which you want to insert? 12 Node Inserted Press 0 to insert more ? 0 Enter the item which you want to insert? 23 Node Inserted Press 0 to insert more ? 1