All pastes #297154 Raw Edit

Something

public text v1 · immutable
#297154 ·published 2006-12-30 21:58 UTC
rendered paste body
#include<stdio.h>
#include<stdio.h>


typedef struct tno{
int x;
struct tno *pai, *esq, *dir;
} no;

void add (int x, no *raiz)
{
no *novo,*p,*q;
int x2;
novo=malloc(sizeof(no));
novo->x=x;
novo->esq=NULL;
novo->dir=NULL;
//q=raiz;
p=raiz;
//*
while ((x!=p->x) && (p))//procura na árvore e posiciona q na raiz da subárvore correta
{
x2=p->x;
if (x<x2) p=p->esq;
else p=p->dir;
}
//se o no estiver na árvore , o código acima a achou , testamos isso agora ..
if (x==p->x) printf("no. já existente , impossivel inserí-lo");
else {


if(x<p->x){
if (p->esq!=NULL){
printf("nao é possivel inserir no.\n");
}
else{
p->esq=q;
novo->pai=p;
}
}
else {
if (x>p->x){
if(p->dir!=NULL){
printf("nao é possivel inserir no.\n");
}
else{
p->dir=novo;
novo->pai=p;
}
}
}
}
}



int main()
{
no *arvore;
arvore=malloc(sizeof(no));
arvore->x=20;
arvore->pai=NULL;
arvore->esq=NULL;
arvore->dir=NULL;
printf("Passou , adicionando ...");
add(20,arvore);
add(16,arvore);
add(14,arvore);
add(8,arvore);
add(22,arvore);
}