ESTRUCTURA_DE_DATOS_LISTAS_ENLAZADAS

Páginas: 6 (1334 palabras) Publicado: 18 de noviembre de 2013
La Paz Baja California Sur, Miércoles 22 de Octubre de 2012

Estructura de datos – Listas doblemente enlazadas
Programa: pinta nodos
CLASES IMPLEMENTADAS
Clase NodoListaDoble
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
System.Text;

namespace ProgListasDobles
{
class NodoListaDoble
{
public int dato;
public NodoListaDoble izq, der;
publicNodoListaDoble()
{
dato = 0; izq = der = null;
}
public NodoListaDoble(int x)
{
dato = x;izq = der = null;
}
}
}

Clase de Listas doblemente enlazadas
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ProgListasDobles
{
class ListasDobles
{
NodoListaDoble Inicio;
public int contador = 1;
publicListasDobles()
{
Inicio = null;
}
public void Insertar(int x)
{
NodoListaDoble p = new NodoListaDoble(x);
if (Inicio == null)
{
Inicio = p; p.der=p.izq = p; contador = 1;
}
else
{ p.der = Inicio; p.izq = Inicio.izq; p.der.izq = p; p.izq.der = p; contador++; }
}
public void Mostrar(ListBox lis)
{
NodoListaDoble p = null; lis.Items.Clear();
if (Inicio != null)
{
p = Inicio;
do
{lis.Items.Add(p.dato);
p = p.der;
} while (p != Inicio);
}
}

Estructura de datos – Listas doblemente enlazadas
Programa: pinta nodos
public void InsAntes(int x, int dato)
{
NodoListaDoble p = null, q=null;
if (Inicio != null)
{
p = Inicio;
do
{
if (p.dato == x)
{
q = new NodoListaDoble(dato); q.der = p; q.izq = p.izq;
q.der.izq = q; q.izq.der = q;
if (p == Inicio)
Inicio = q;p = Inicio; contador++;
}
else
p = p.der;
} while (p != Inicio);
}
else
MessageBox.Show("NO hay lista");
}
public void InsDespues(int x, int dato)
{
NodoListaDoble p = null, q = null;
if (Inicio != null)
{
p = Inicio;
do
{
if (p.dato == x)
{ q = new NodoListaDoble(dato); q.der = p.der; q.izq = p; q.der.izq = q; q.izq.der = q; p = Inicio; contador++; }
else
p = p.der;
}while (p != Inicio);
}
else
MessageBox.Show("NO hay lista");
}
public void Eliminar(int x)
{
NodoListaDoble p = null;
if (Inicio != null)
{
p = Inicio;
do
{
if (p.dato == x)
{
if (p == Inicio)
if (Inicio.der == Inicio)
Inicio = null;
else
Inicio = Inicio.der; p.der.izq = p.izq; p.izq.der = p.der; p.der = null;
p.izq = null; p = Inicio;
contador--;
}
else
p = p.der;
} while(p != Inicio);
}
else
MessageBox.Show("No hay lista");
}

Estructura de datos – Listas doblemente enlazadas
Programa: pinta nodos
public bool Buscardatonodo(int x)
{
NodoListaDoble p = null;
bool banderita = false;
if (Inicio != null)
{
p = Inicio;
do
{
if (p.dato == x)
{
return banderita = true;
}
else
p = p.der;
}
while (p != Inicio);
}
return banderita;
}
publicvoid Ordenarnodos()
{
NodoListaDoble p, q = null;
if (Inicio != null)
{
p = Inicio.der;
q= Inicio;
do
{
while (p != Inicio)
{
if (p.dato < q.dato)
{
int valor = p.dato; p.dato = q.dato;
q.dato = valor; p = p.der;
}
else
p = p.der;
}
if (p == Inicio)
{
q = q.der; p = q.der;
}
} while (q != Inicio);
}
}
public void invertir()
{
NodoListaDoble p=null,q = null;
if (Inicio!= null)
{
p = Inicio; q = Inicio.izq;
do
{
if (p.der == q)
{
int val = q.dato; q.dato = p.dato; p.dato = val; break;
}
if (p.der == q.der)
break;
else
{
int val = q.dato; q.dato = p.dato; p.dato = val; q = q.izq; p = p.der;
}
while (q!= p);
}
}
}
}

}

Estructura de datos – Listas doblemente enlazadas
Programa: pinta nodos
Código del programa de pinta nodos de listasdoblemente enlazadas
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace ProgListasDobles
{
public partial class Form1 : Form
{
ListasDobles ListadeNodos;
Graphics G;
Pen P = new Pen(Color.Black,2); Pen PT = new...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS