Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Estructura de datos (página 2)




Enviado por Efra�n Estrada



Partes: 1, 2

La lista enlazada básica es la lista enlazada simple la
cual tiene un enlace por nodo. Este enlace apunta al siguiente
nodo en la lista, o al valor NULL o a
la lista vacía, si es el último nodo.

Monografias.com

Una lista enlazada simple contiene dos valores: el
valor actual del nodo y un enlace al siguiente nodo

Lista Doblemente Enlazada

Un tipo de lista enlazada más sofisticado es la lista
doblemente enlazada o lista enlazadas de dos vías. Cada
nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al
valor NULL o a la lista vacía si es el primer nodo; y otro
que apunta al siguiente nodo siguiente, o apunta al valor NULL o
a la lista vacía si es el último nodo.

Monografias.com

Una lista doblemente enlazada contiene tres valores: el
valor, el link al nodo siguiente, y el link al anterior

En algún lenguaje de
muy bajo nivel, ofrece una vía para implementar listas
doblemente enlazadas, usando una sola palabra para ambos enlaces,
aunque el uso de esta técnica no se suele utilizar.

Listas enlazadas circulares

En una lista enlazada circular, el primer y el último
nodo están unidos juntos. Esto se puede hacer tanto para
listas enlazadas simples como para las doblemente enlazadas. Para
recorrer un lista enlazada circular podemos empezar por cualquier
nodo y seguir la lista en cualquier dirección hasta que se regrese hasta el
nodo original. Desde otro punto de vista, las listas enlazadas
circulares pueden ser vistas como listas sin comienzo ni fin.
Este tipo de listas es el más usado para dirigir buffers
para "ingerir" datos, y para
visitar todos los nodos de una lista a partir de uno dado.

Monografias.com

Una lista enlazada circular que contiene tres valores
enteros

Listas enlazadas circulares simples

Cada nodo tiene un enlace, similar al de las listas enlazadas
simples, excepto que el siguiente nodo del último apunta
al primero. Como en una lista enlazada simple, los nuevos nodos
pueden ser solo eficientemente insertados después de uno
que ya tengamos referenciado. Por esta razón, es usual
quedarse con una referencia solamente al último elemento
en una lista enlazada circular simple, esto nos permite
rápidas inserciones al principio, y también permite
accesos al primer nodo desde el puntero del último
nodo.

Lista Enlazada Doblemente Circular

En una lista enlazada doblemente circular, cada nodo tiene dos
enlaces, similares a los de la lista doblemente enlazada, excepto
que el enlace anterior del primer nodo apunta al último y
el enlace siguiente del último nodo, apunta al primero.
Como en una lista doblemente enlazada, las inserciones y
eliminaciones pueden ser hechas desde cualquier punto con acceso
a algún nodo cercano. Aunque estructuralmente una lista
circular doblemente enlazada no tiene ni principio ni fin, un
puntero de acceso externo puede establecer el nodo apuntado que
está en la cabeza o al nodo cola, y así mantener el
orden tan bien como en una lista doblemente enlazada.

Nodos Centinelas

A veces las listas enlazadas tienen un nodo centinela
(también llamado falso nodo o nodo
ficticio
) al principio y/o al final de la lista, el cual no
es usado para guardar datos. Su propósito es simplificar o
agilizar algunas operaciones,
asegurando que cualquier nodo tiene otro anterior o posterior, y
que toda la lista (incluso alguna que no contenga datos) siempre
tenga un "primer y último" nodo.

3. FORMS

FORM 1

Monografias.com

En esta forma es donde se tiene acceso al programa (usando
el botón entrar), mediante un nombre de usuario y
contraseña definida.

Si no se pone el nombre de usuario y la contraseña
correcta aparece un cuadro que muestra que
tienes un error.

Por ultimo se usa un botón para salir del programa.

FORM 2

Monografias.com

Esta forma es donde se captura y se guardan los datos de los
clientes, donde
se pide datos de los clientes, también existe un
botón con el que podemos eliminar los registros
guardados.

Tiene un botón para ver las habitaciones con las que
cuenta el hotel, en otro se usa para
borrar los datos que no se usan.

FORM 3

Monografias.com

En esta forma vemos la galería de foto que
por medio de dos botones que un botón pues se va de la
primera foto hasta la ultima y te manda un mensaje de que esa es
la ultima foto de la galería y el siguiente botón
va de la ultima foto hacia la primera y cuando llega a la primera
te manda un mensaje de que esa es la primer foto de la
galería y el ultimo botón que se observa es para
poder regresar
al menú anterior que viene siendo la FORM 2

4. CODIGO DEL
PROGRAMA

FORM 1

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsApplication3

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void textBox2_TextChanged(object sender,
EventArgs e)

{

}

private void button1_Click(object sender,
EventArgs e)

{

if (textBox1.Text.ToLower() == "uni" &&
textBox2.Text.ToLower() == "kino")

{

this.DialogResult = DialogResult.OK;

this.Hide();

Form troll = new Form2();

troll.ShowDialog();

}

else

{

MessageBox.Show("INTENTE DE NUEVO", "ERROR");

textBox1.Text = "";

textBox2.Text = "";

}

}

private void button2_Click(object sender,
EventArgs e)

{

Application.Exit();

}

}

}

FORM 2

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsApplication3

{

public partial class Form2 : Form

{

private int i = 0;

private bool encontrado;

private DataGridViewCell dgc0, dgc1, dgc2,
dgc3;

private string eliminar;

public Form2()

{

InitializeComponent();

}

private void button1_Click(object sender,
EventArgs e)

{

try

{

//textBox2.Text = "";

if (i > 10)

{

MessageBox.Show("Arreglo Esta LLeno ",
"Mensaje");

//label2.Text = "Arreglo Esta Vacio";

}

else

{

groupBox1.Visible = true;

dataGridView1.Visible = false;

}

}

catch (Exception error)

{

MessageBox.Show(" NO SE PUEDE " + error);

}

}

private void button4_Click(object sender,
EventArgs e)

{

i++;

dataGridView1.Rows.Add(i.ToString(),
textBox1.Text, textBox2.Text, textBox3.Text,textBox5.Text);

groupBox1.Visible = false;

dataGridView1.Visible = true;

textBox1.Text = "";

textBox2.Text = "";

textBox3.Text = "";

}

private void button2_Click(object sender,
EventArgs e)

{

}

private void button2_Click_1(object sender,
EventArgs e)

{

encontrado = false;

try

{

eliminar = textBox4.Text;

for (int j = 0; j < dataGridView1.Rows.Count;
j++)

{

dgc1 = dataGridView1.Rows[j].Cells[0];

if (dgc1.Value.ToString() ==
eliminar.ToString())

{

if (MessageBox.Show("¿desea eliminar el
registro " +
dgc1.Value.ToString() + ", esta seguro?",
"borrar"

, MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)

{

dataGridView1.Rows.RemoveAt(dgc1.RowIndex);

}

encontrado = true;

}

}

if (!encontrado)

{

MessageBox.Show("Error el id indicado no se
encuentra en la tabla", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);

}

}

catch (Exception ea)

{

MessageBox.Show("Error escribe solo numeros:n" +
ea, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void button3_Click(object sender,
EventArgs e)

{

this.Hide();

Form troll = new Form3();

troll.ShowDialog();

}

private void button5_Click(object sender,
EventArgs e)

{

Application.Exit();

}

}

}

FORM 3

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsApplication3

{

public partial class Form3 : Form

{

public Form3()

{

InitializeComponent();

}

int i = 0;

int l = 1;

string[] fotos = {
"sencilla.jpg", "doble.jpg", "suite.jpg", "presidencial.jpg"
};

private void pictureBox1_Click(object sender,
EventArgs e)

{

}

private void button2_Click(object sender,
EventArgs e)

{

if (i >= 1)

{

l–;

label1.Text = Convert.ToString(l);

i–;

pictureBox1.Image = Image.FromFile(fotos[i]);

}

else { MessageBox.Show("Error: Esa Es La Primera
Foto de la Galeria"); }

}

private void button1_Click(object sender,
EventArgs e)

{

if (i <= 2)

{

l++;

label1.Text = Convert.ToString(l);

i++;

pictureBox1.Image = Image.FromFile(fotos[i]);

}

else { MessageBox.Show("Error: Esa Fue La Ultima
Foto de la Galeria"); }

}

private void button3_Click(object sender,
EventArgs e)

{

this.Hide();

Form troll = new Form2();

troll.ShowDialog();

}

}

}

5. RESUMEN

Este proyecto trata
sobre un hotel, el primer paso es donde se solicita el acceso
mediante un nombre de usuario y una contraseña, si no se
tiene la contraseña y el usuario, se refleja una ventana
en donde aparece que tienes un error y que intentes de nuevo; si
pones bien los datos con el botón de entrar te pasa a la
siguiente ventana; en donde es para registrar en la tabla de
datos al cliente que va
llegando, se puede guardar y eliminar cuando tú desees,
para pasar a la otra ventana existe un botón; en esta
última ventana se muestran los tipos de habitaciones con
las que cuenta el hotel, una vez que el cliente escoge la
habitación se regresa a la forma anterior para llenar los
datos del cliente.

6.
REFERENCIAS

www.wikipedia.com

www.monografias.com

 

 

Autor:

Efraín Estrada

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter