#ifndef LSL_H_INCLUDED
#define LSL_H_INCLUDED
#include<stdio.h>
#include<conio.h>
#include<windows.h>
typedef int elemento;
typedef struct Nodo{
elemento dato;
Nodo* sig;
};
typedef Nodo* ap;//apun la estructura nodo tador
typedef Nodo* posicion;
void anula(ap &L)
{
//L = new Nodo ;
L= NULL;
}
int vacia (ap L)
{
if(L==NULL)
return 1;
return 0;
}
posicion siguiente(posicion p,ap L)
{
if(!vacia(L))
return p->sig;
}
void inserta(ap &L, elemento x, ap pos)
{
ap aux = new Nodo;//Reserva espacio para un apuntador auxiliar, que apunta a la estructura
if(aux == NULL)//si ya no hay memoria regresa algo, investigar que regresa. No estoy seguro que sea NULL
{
printf("Ya no hay memoria\n");
}
else
{
aux->dato = x;//asigna el dato a el apuntador auxiliar
if(vacia(L))//asigna cuando esta vacia
{
aux->sig=NULL;
L=aux;
}else
{
if(pos==NULL)//asigna al principio con datos
{
aux->sig=L;
L=aux;
}else//asigna en medio
{
aux->sig=pos->sig;
pos->sig=aux;
}
}
}
}
int suprime(ap &L, ap pos)
{
if(!vacia(L))
{
ap aux;
if(pos->sig == NULL)
return 0;
else
{
aux = pos->sig;//se gurda en el apuntador el siguiente de la posicion
pos->sig = aux->sig;//se crea
delete(aux);
return 1;
}
}
}
posicion localiza(ap L, elemento x)
{
int bandera=0;
if(vacia(L))
{
return NULL;
}
else
{
ap aux;
ap pos;
aux=L;
pos=NULL;
while(aux!=NULL && bandera==0)
{
if(aux->dato==x)
bandera=1;
else
{
pos=aux;
aux=aux->sig;
}
}
return pos;
}
}
void imprime (ap L)
{
ap aux;
if(vacia(L))
printf("\nLista vacia\n");
else
{
aux=L;
while(aux!=NULL)
{
printf(" %i ",aux->dato);
aux=aux->sig;
}
}
}
elemento recupera(ap L, posicion x)
{
if(vacia (L))
{
printf("\nLista vacia\n");
return -1;
}
else
return x->dato;
}
posicion primero(ap L)
{
return L;
}
#endif // LSL_H_INCLUDED
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.