Backup proyecto Joyfe - Borland

This commit is contained in:
2025-06-16 22:54:10 +02:00
commit d61829a1a7
130 changed files with 11881 additions and 0 deletions

103
CPP/ARCON.CPP Normal file
View File

@ -0,0 +1,103 @@
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <alloc.h>
#include <stdlib.h>
struct nodo {
int dato;
struct nodo *padre;
struct nodo *hi;
struct nodo *hd;
};
int ARBOL_VACIO (struct nodo *);
void INI_ARBOL (struct nodo **);
void INS_ARBOL (struct nodo **, int);
int LISTAR_IRD (struct nodo *);
void main (void) {
int d;
struct nodo *arbol;
INI_ARBOL(&arbol);
for (int i=0; i<37; i++) {
printf("\n Introduce n<>mero: ");
fflush (stdin);
scanf ("%d", &d);
INS_ARBOL(&arbol, d);
}
printf("Numero de niveles -> %d",LISTAR_IRD(arbol));
getch();
free (arbol);
}
int ARBOL_VACIO(struct nodo *p) {
if (p == NULL)
return (1);
else
return (0);
}
void INI_ARBOL(struct nodo **p) { *p = NULL; }
void INS_ARBOL(struct nodo **p, int n) {
struct nodo *aux;
struct nodo **q;
int sw;
if ((aux = (struct nodo*) malloc (sizeof (struct nodo)))== NULL)
exit(1);
aux -> dato = n;
if (ARBOL_VACIO(*p)) {
aux -> hi = NULL;
aux -> hd = NULL;
aux -> padre = aux;
*p = aux;
}
else {
sw = 1;
q = p;
while (sw) {
sw = 0;
if ((*q) -> dato <= n && (*q) -> hd != NULL) {
q = &(*q) -> hd;
sw = 1;
}
if ((*q) -> dato >= n && (*q) -> hi != NULL) {
q = &(*q) -> hi;
sw = 1;
}
}
aux -> hi = aux -> hd = NULL;
aux -> padre = (*q);
((*q) -> dato < n) ? (*q) -> hd = aux : (*q) -> hi = aux;
}
}
int LISTAR_IRD(struct nodo *p) {
static int max=0;
static int nivel=1;
if (p != NULL)
{
nivel++;LISTAR_IRD(p -> hi);
if (nivel>max)
max=nivel;
nivel--;
//printf (" %d ", p -> dato);
nivel++;LISTAR_IRD(p -> hd);
nivel--;
if (nivel>max)
max=nivel;
}
return (max-1);
}