typedef struct abb {
int valor;
struct abb *izq;
struct abb *der;
} __attribute__((packed)) abb;
/* Crea un ABB con un elemento */
abb *crearABB(int elemento);
/* Elimina un ABB liberando toda la memoria que usa. */
void eliminarAbb(abb *arbol);
/* Retorna true si el elemento esta en el abb */
bool buscarElemento(abb *arbol, int elemento);
/* Agrega un elemento al abb. Retorna true si lo pudo agregar, false sino */
bool agregarElemento(abb *arbol, int elemento);
gcc -c abb.c -o abb.c.o -Wall -Wextra --std=c99 -O0 -g
gcc -c abb.c -o abb.c.o -Wall -Wextra --std=c99 -O0 -g
gcc -c tests.c -o tests.o -Wall -Wextra --std=c99 -O0 -g
gcc abb.c.o abb.s.o tests.o -o tests
; armamos el stack frame (deja el stack alineado a 16 bytes :)
push rbp
mov rbp, rsp
push rbx
push r12
push r13
push r14
push r15
; codigo
; desarmamos el stack frame
pop r15
pop r14
pop r13
pop r12
pop rbx
pop rbp
ret