lunes, 5 de diciembre de 2022

Árbol

 Crear nodos mediante un programa de árbol

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

struct nodo{

struct nodo *padre;

struct nodo *izquierdo;

struct nodo *derecho;

int valor;

};

struct nodo *crear_nodo(struct nodo *padre, int valor);

void agregar_valor(struct nodo *arbol, int valor);

int main(){

struct nodo *arbol;

arbol = crear_nodo(NULL,40);

agregar_valor(arbol,10);

agregar_valor(arbol,50);

agregar_valor(arbol,1);

agregar_valor(arbol,2);

return 0;

}

struct nodo *crear_nodo(struct nodo *padre, int valor){

struct nodo *n= calloc(sizeof(struct nodo),1);

n->padre = padre;

n->valor = valor;

return n;

}

void agregar_valor(struct nodo *arbol, int valor){

struct nodo *temp, *pivote;

int derecho = 0;

if(arbol){

temp = arbol;

while(temp !=NULL){

pivote = temp;

if(valor>temp->valor){

temp = temp->derecho;

derecho = 1;

}else{

temp = temp->izquierdo;

derecho = 0;

}

}

temp = crear_nodo(pivote,valor);

if(derecho){

printf("Insertando %i el lado derecho de %i\n",valor,pivote->valor);

pivote->derecho = temp;

}else{

printf("Insertando %i el lado izquierdo de %i\n",valor,pivote->valor);

pivote->izquierdo = temp;

}

}else{

printf("EL arbol no esta inicializado");

}

}


No hay comentarios:

Publicar un comentario