Está en la página 1de 7

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERA DE SISTEMAS

OPERACIONES CON LISTAS DOBLES


DISEO DEL FORMULARIO

DR. LUIS BOY CHAVIL

#pragma once
class EstructuraLista
{
public:
char dato;
int sig;
int ant;
EstructuraLista(void)
{
}
};
#pragma once
#include "EstructuraLista.h"
class OperaLista
{
public:
int CabInicio;
int CabFinal;
int CabLibre1;
int CabLibre2;
EstructuraLista L[50];
public:
void InicializarLista(EstructuraLista[], int&, int&,
int&, int&);
void Agregar(EstructuraLista[], int&, int&, int&,
int&, char);
2

DR. LUIS BOY CHAVIL

OperaLista(void)
{
}
};
void OperaLista::Agregar(EstructuraLista L[], int
&CabInicio, int &CabFinal, int &CabLibre1, int
&CabLibre2, char xdato)
{
if(CabLibre1!=99)
{
L[CabLibre1].dato=xdato;
if(CabInicio==99)
{
CabInicio=CabLibre1;
CabLibre1=L[CabInicio].sig;
L[CabInicio].sig=99;
L[CabLibre1].ant=99;
CabFinal=CabInicio;
}
else
{
int xCabLibre1=CabLibre1;
CabLibre1=L[xCabLibre1].sig;
L[xCabLibre1].sig=99;
L[xCabLibre1].ant=CabFinal;
L[CabFinal].sig=xCabLibre1;
CabFinal=xCabLibre1;
L[CabLibre1].ant=99;
3

DR. LUIS BOY CHAVIL

}
}
else
CabLibre1=99;
}
void OperaLista::InicializarLista(EstructuraLista L[],
int &CabInicio, int &CabFinal, int &CabLibre1, int
&CabLibre2)
{
CabInicio=99;
CabFinal=99;
CabLibre1=0;
CabLibre2=49;
for(int k=0; k<50; k++)
{
L[k].sig=k+1;
L[k].ant=k-1;
L[k].dato=' ';
}
L[0].ant=99;
L[49].sig=99;
}

DR. LUIS BOY CHAVIL

void OperaLista::InicializarLista(EstructuraLista L[],


int &CabInicio, int &CabFinal, int &CabLibre1, int
&CabLibre2)
{
CabInicio=99;
CabFinal=99;
CabLibre1=0;
CabLibre2=49;
for(int k=0; k<50; k++)
{
L[k].sig=k+1;
L[k].ant=k-1;
L[k].dato=' ';
}
L[0].ant=99;
L[49].sig=99;
}

private: System::Void
BtnAgregar_Click(System::Object^ sender,
System::EventArgs^ e)
{
char xdato=Convert::ToChar(TxtDato>Text);
Lista.Agregar(Lista.L, Lista.CabInicio,
Lista.CabFinal, Lista.CabLibre1, Lista.CabLibre2,
xdato);
5

DR. LUIS BOY CHAVIL

TxtDato->Clear();
TxtDato->Focus();
}

private: System::Void
BtnVerLista_Click(System::Object^ sender,
System::EventArgs^ e)
{
LstLista->Items->Clear();
int xptr=Lista.CabInicio;
while(xptr!=99)
{
char xdato=Lista.L[xptr].dato;
String^ xLinea=Convert::ToString(xptr)
+" --> "+Char::ToString(xdato)+" "+Convert::ToString(Lista.L[xptr].sig)+" "+Convert::ToString(Lista.L[xptr].ant);
LstLista->Items->Add(xLinea);
xptr=Lista.L[xptr].sig;
}
}
IMPORTANTE

DR. LUIS BOY CHAVIL

#include "OperaLista.h"
OperaLista Lista;

DR. LUIS BOY CHAVIL

También podría gustarte