Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct nodo{
- int valor;
- struct nodo* ptrHI;
- struct nodo* ptrHD;
- } TNodo;
- void crear_arbol(TNodo ** ptrRaiz);
- void inserta_nodo(TNodo **ptrRaiz, int valor);
- void en_orden(TNodo * ptrRaiz);
- void crear_arbol(TNodo ** ptrRaiz){
- *ptrRaiz = NULL;
- }
- void inserta_nodo(TNodo **ptrRaiz, int valor){
- TNodo *ptrHoja, *ptrRecorrido, *ptrPadre;
- ptrHoja = (TNodo*)malloc(sizeof(TNodo));
- ptrHoja->valor = valor;
- ptrHoja->ptrHI=ptrHoja->ptrHD=NULL;
- if(*ptrRaiz){
- ptrRecorrido = *ptrRaiz;
- ptrPadre = NULL;
- while (ptrRecorrido){
- ptrPadre = ptrRecorrido;
- if (ptrRecorrido->valor > valor)
- ptrRecorrido = ptrRecorrido->ptrHI;
- else
- ptrRecorrido = ptrRecorrido->ptrHD;
- }
- if (ptrPadre->valor > valor)
- ptrPadre->ptrHI = ptrHoja;
- else
- ptrPadre->ptrHD = ptrHoja;
- }
- else{
- *ptrRaiz = ptrHoja;
- }
- }
- void en_orden(TNodo * ptrRaiz){
- if (ptrRaiz){
- en_orden(ptrRaiz->ptrHI);
- printf("%d-", ptrRaiz->valor);
- en_orden(ptrRaiz->ptrHD);
- }
- }
- int main(int argc, char** argv) {
- TNodo *ptrRaiz;
- crear_arbol(&ptrRaiz);
- inserta_nodo(&ptrRaiz, 4);
- inserta_nodo(&ptrRaiz, 2);
- inserta_nodo(&ptrRaiz, 1);
- inserta_nodo(&ptrRaiz, 6);
- inserta_nodo(&ptrRaiz, 5);
- inserta_nodo(&ptrRaiz, 7);
- en_orden(ptrRaiz);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement