You are on page 1of 15

ESTRUCTURA DE DATOS

[Document subtitle]

Por:

Gilberfy Perez

10055956

JULY 8, 2014
Introduccin ...............................................................................................................................................................2
Estructura de Datos ....................................................................................................................................................3
Datos Elementales o Primitivos ..............................................................................................................................3
Datos Compuesto o Estructurado ..........................................................................................................................4
Estticas ..............................................................................................................................................................4
Dinamicas ............................................................................................................ Error! Bookmark not defined.
FORMS ........................................................................................................................................................................8
FORM 1 ...................................................................................................................................................................8
FORM 2 ...................................................................................................................................................................8
FORM 3 ...................................................................................................................................................................8
CODIGO DEL PROGRAMA ...........................................................................................................................................9
FORM 1 ...............................................................................................................................................................9
FORM 2 ...................................................................................................................................................................9
FORM 3 ................................................................................................................................................................ 11
RESUMEN................................................................................................................................................................. 13
REFERENCIAS ........................................................................................................................................................... 14
Introduccin

En este trabajo se manejaron diferentes herramientas del sistema c#, en donde se utilizaron arreglos, galera de
imgenes, tabla de datos, etc.

En el marco terico se encuentra la teora de la estructura de datos, contiene lo que son definiciones y algunos
ejemplos.

Tambin en el trabajo aparecen las diferentes formas que se realizaron con una explicacin acerca de la funcin
que tiene cada una, dentro de este punto est el cdigo del programa.

Por ltimo hay un resumen acerca del proyecto; es una explicacin sobre el proyecto, donde se describe desde
el momento en que empieza hasta donde termina el programa.
Estructura de Datos

En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales con el
objetivo de facilitar su manipulacin. Un dato elemental es la mnima informacin que se tiene en un sistema.

Una estructura de datos define la organizacin e interrelacin de stos y un conjunto de operaciones que se
pueden realizar sobre ellos. Las operaciones bsicas son:

* Alta, adicionar un nuevo valor a la estructura.

* Baja, borrar un valor de la estructura.

* Bsqueda, encontrar un determinado valor en la estructura para realizar una operacin con este valor, en
forma SECUENCIAL o BINARIO (siempre y cuando los datos estn ordenados)...

Otras operaciones que se pueden realizar son:

* Ordenamiento, de los elementos pertenecientes a la estructura.

* Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

Cada estructura ofrece ventajas y desventajas en relacin a la simplicidad y eficiencia para la realizacin de cada
operacin. De esta forma, la eleccin de la estructura de datos apropiada para cada problema depende de
factores como la frecuencia y el orden en que se realiza cada operacin sobre los datos.

Datos Elementales o Primitivos


Binarios
Bit
Byte

Numricos
Entero
Real
Coma fija
Coma flotante

Alfanumricos
Carcter
Booleanos
Datos Compuesto o Estructurado

Estticas

Las estructuras estticas son aquellas en las que el tamao ocupado en memoria se define antes de que el
programa se ejecute y no puede modificarse dicho tamao durante la ejecucin del programa. Estas estructuras
estn implementadas en casi todos los lenguajes; array (tablas-matrices),registros, ficheros (los conjuntos son
especficos del lenguaje Pascal).

Array (Matriz)
Una matriz o vector (llamado en ingls array) es una zona de almacenamiento continuo, que contiene una serie
de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lgico una matriz se puede ver
como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).

Registro
Un registro, en programacin, es un tipo de dato estructurado formado por la unin de varios elementos bajo
una misma estructura. Estos elementos pueden ser, o bien datos elementales (entero, real, carcter,...), o bien
otras estructuras de datos. A cada uno de esos elementos se le llama campo.

Un registro se diferencia de un vector en que ste es una coleccin de datos iguales, es decir, todos del mismo
tipo, mientras que en una estructura los elementos que la componen, aunque podran serlo, no tiene por qu
ser del mismo tipo.

Archivo (Fichero)
Un archivo o fichero informtico es un conjunto de bits que son almacenados en un dispositivo.

Un archivo es identificado por un nombre y la descripcin de la carpeta o directorio que lo contiene. A los
archivos informticos se les llama as porque son los equivalentes digitales de los archivos escritos en libros,
tarjetas, libretas, papel o microfichas del entorno de oficina tradicional.

Cadena (String)
Una cadena de caracteres, palabra, ristra de caracteres o frase (string en ingls) es una secuencia ordenada de
longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto anlogas
a una frmula o a una oracin. En general, una cadena de caracteres es una sucesin de caracteres (letras,
nmeros u otros signos o smbolos).
Conjuntos
Los conjuntos son una de las estructuras bsicas de las matemticas, y por tanto de la informtica. No se va a
entrar en la definicin de conjuntos ni en sus propiedades. Se supondr que el lector conoce algo de teora de
conjuntos. Con lo ms bsico es suficiente.

En realidad las estructuras de datos que se han implementado hasta ahora no son ms que elementos
diferentes entre s (en general) en los que se ha definido una relacin. Que pueden estar ordenados entre s.
Obviando las propiedades de las estructuras, se ve que forman un conjunto, y su cardinal es el nmero de
elementos que contenga la estructura. En los conjuntos no existen elementos repetidos, y esto se respeta en las
implementaciones que se ofrecen a continuacin.

En este tema definiremos unas implementaciones que permitan aplicar el lgebra de conjuntos, ya sea unin,
interseccin, pertenencia entre otras.

Dinmicas

Las estructuras de datos dinmicos no tienen las limitaciones o restricciones en el tamao de memoria ocupada
que son propias de las estructuras estticas. Mediante el uso de un tipo de datos especfico, denominado
puntero, es posible consumir estructuras de datos dinmicas que son soportadas por la mayora de los
lenguajes, y en aquellos que s tienen esas caractersticas ofrecen soluciones eficaces y efectivas en la solucin
de problemas complejos Pascal es el lenguaje tipo por excelencia con posibilidad de estructuras de datos
dinmicos - .La estructura dinmica por excelencia son las listas enlazadas, pilas, colas - , rboles binarios,
rbol-b, de bsqueda binaria y grafos.

Pilas
Una pila (stack en ingls) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos
es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir) que permite almacenar y
recuperar datos. Se aplica en multitud de ocasiones en informtica debido a su simplicidad y ordenacin
implcita en la propia estructura.

Colas
Las Colas FIFO, son aquellas que solo tiene 2 operaciones, Push(Insercin) y Pop(Eliminacin). Push solo se
puede efectuar por un extremo llamado Frente y Pop por el extremo Llamado Final. Sin Embargo se le pueden
aplicar todas las operacin al igual que a las listas.
Listas
Tipos de Listas Enlazadas

Listas enlazadas lineales

Listas simples enlazadas

La lista enlazada bsica 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 vaca, si es el ltimo nodo.

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 ms sofisticado es la lista doblemente enlazada o lista enlazadas de dos vas. Cada
nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL o a la lista vaca si es el primer
nodo; y otro que apunta al siguiente nodo siguiente, o apunta al valor NULL o a la lista vaca si es el ltimo nodo.

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

En algn lenguaje de muy bajo nivel, ofrece una va para implementar listas doblemente enlazadas, usando una
sola palabra para ambos enlaces, aunque el uso de esta tcnica no se suele utilizar.

Listas enlazadas circulares


En una lista enlazada circular, el primer y el ltimo nodo estn 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 direccin 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 ms usado para dirigir buffers para ingerir datos, y para visitar todos los nodos de una lista a
partir de uno dado.

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 despus de uno que ya tengamos referenciado. Por esta razn, es usual quedarse con una referencia
solamente al ltimo elemento en una lista enlazada circular simple, esto nos permite rpidas inserciones al
principio, y tambin 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 algn 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 (tambin llamado falso nodo o nodo ficticio) al principio
y/o al final de la lista, el cual no es usado para guardar datos. Su propsito 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.

rbol
Un rbol es una estructura de datos ampliamente usada que imita la forma de un rbol (un conjunto de nodos
conectados). Un nodo es la unidad sobre la que se construye el rbol y puede tener cero o ms nodos hijos
conectados a l.
FORMS

FORM 1
En esta forma es donde se tiene acceso al programa (usando el botn entrar), mediante un nombre de usuario y
contrasea definida.

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

Por ltimo se usa un botn para salir del programa.

FORM 2
Esta forma es donde se captura y se guardan los datos de los clientes, donde se pide datos de los clientes,
tambin existe un botn con el que podemos eliminar los registros guardados.

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

FORM 3
En esta forma vemos la galera de foto que por medio de dos botones que un botn pues se va de la primera
foto hasta la ltima y te manda un mensaje de que esa es la ltima foto de la galera y el siguiente botn va de
la ltima foto hacia la primera y cuando llega a la primera te manda un mensaje de que esa es la primer foto de
la galera y el ultimo botn que se observa es para poder regresar al men anterior que viene siendo la FORM 2
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();
}
}
}
RESUMEN

Este proyecto trata sobre un hotel, el primer paso es donde se solicita el acceso mediante un nombre de usuario
y una contrasea, si no se tiene la contrasea 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 botn 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 botn; en esta ltima ventana se muestran los tipos de
habitaciones con las que cuenta el hotel, una vez que el cliente escoge la habitacin se regresa a la forma
anterior para llenar los datos del cliente.
REFERENCIAS

www.wikipedia.com

You might also like