Está en la página 1de 3

//---------------------------------------------------------------------------

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------
struct NODO {
int inf;
NODO *sig;
};
NODO *raiz=NULL;
void adicion(int dato)
{
NODO *nuevo;
nuevo=(NODO *)malloc(sizeof(NODO));
nuevo->inf=dato;
if(raiz==NULL) { // LISTA VACIA
raiz=nuevo;
nuevo->sig=NULL;
}
else { //agrega al inicio
nuevo->sig=raiz;
raiz=nuevo;
}
}
void mostrar(void)
{
NODO *act=raiz;
while (act != NULL)
{
printf("%5d", act->inf);
act=act->sig;
}
}
#pragma argsused
int main(int argc, char* argv[])
{
adicion(10);
adicion(20);
adicion(30);
adicion(40);
adicion(110);
adicion(210);
adicion(310);
adicion(410);
mostrar();
getch();
return 0;
}
//---------------------------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------
struct NODO {
int inf;
NODO *sig;
};
NODO *raiz=NULL;
void adicion(int dato)
{
NODO *nuevo;
nuevo=(NODO *)malloc(sizeof(NODO));
nuevo->inf=dato;
if(raiz==NULL) { // LISTA VACIA
raiz=nuevo;
nuevo->sig=NULL;
}
else { //busca lugar donde insertar
NODO *ant=raiz, *act=raiz;;
while(act !=NULL && dato>act->inf){
ant=act;
act=act->sig;
}
if(ant==act) //al inicio
{
nuevo->sig=raiz;
raiz=nuevo;
}
else //al medio y final
{
ant->sig=nuevo;
nuevo->sig=act;
}
}
}
void mostrar(void)
{
NODO *act=raiz;
while (act != NULL)
{
printf("%5d", act->inf);
act=act->sig;
}
}
#pragma argsused
int main(int argc, char* argv[])
{
adicion(50);
adicion(20);
adicion(70);
adicion(40);
adicion(10);
adicion(60);
adicion(30);
adicion(80);
mostrar();
getch();
return 0;
}

También podría gustarte