Está en la página 1de 6

Estructura de Datos

Aplicando el conocimiento adquirido de los conceptos


investigados realizar un estudio de casos de los siguientes
escenarios. Cuando y por qué debo utilizar las siguientes
estructuras de casos:

- Lista
Caso: Una escuela privada requiere ingresar los estudiantes en la base de datos
del sistema, así que, deciden crear un arreglo de 500 elementos para los
estudiantes inscritos (90) y guardar 410 elementos vacíos para los nuevos
estudiantes de los próximos 5 años y luego actualizar el sistema. ¿Pero, si
entran más de 410 estudiantes antes de los 4 años? Hubiera un caos.
Solución: Se recomienda crear una lista para no desperdiciar memoria y así se
registren los estudiantes utilizando más memoria y espacio automáticamente.
La lista simple debe usarse en casos de almacenar una serie de datos para
tener una mejor estructura y buen rendimiento de la memoria.

function Node (value) {
  this.value = value
  this.next = null
}

function LinkedList() {
  this.head = null
}
- Vectores
Caso: Una empresa desea guardar los sueldos de los empleados (10), lo ideal
seria crear cinco variables distintas para cada sueldo.
Solución: Si usa la estructura de vector puede almacenar los dates con un solo
nombre y acceder a ello por medio del subíndice.
Los vectores deben usarse cuando se almacenara un conjunto de datos del
mismo tipo y así es más fácil el acceso a los datos.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PruebaVector1
{
class PruebaVector1
{
private int[] sueldos;

public void Cargar()


{
sueldos = new int[5];
for (int f = 0; f < 5; f++)
{
Console.Write("Ingrese valor de la componente:");
String linea;
linea = Console.ReadLine();
sueldos[f] = int.Parse(linea);
}
}

public void Imprimir()


{
for (int f = 0; f < 5; f++)
{
Console.WriteLine(sueldos[f]);
}
Console.ReadKey();
}

static void Main(string[] args)


{
PruebaVector1 pv = new PruebaVector1();
pv.Cargar();
pv.Imprimir();
}
}
}
- Matriz
Caso: Una banca desea guardar los números ganadores de la lotería por tanda
(mañana, tarde y noche).
Solución: Con el uso de una estructura de tipo matriz se creará una matriz
(varga la redundancia) donde se almacenarán los números premiados de cada
tanda y, además, se creará un vector de tipo string con el nombre de las
tandas.
Las matrices se usan para almacenar un conjunto de datos del mismo tipo al
igual que los vectores con la diferencia que se define con un solo nombre y se
hace referencia por medio de dos subíndices. Ejemplo: (1, 3) fila|columna.

namespace Matriz
{
class Matriz
{
private string[] tandas;
private int[,] numeros;

public void Cargar()


{
tandas = new String[3];
numeros = new int[3, 4];
for (int f = 0; f < tandas.Length; f++)
{
Console.Write("Ingrese la tanda:");
tandas[f] = Console.ReadLine();
for (int c = 0; c < numeros.GetLength(1); c++)
{
Console.Write("Ingrese numero ganador:");
string linea;
linea = Console.ReadLine();
numeros[f, c] = int.Parse(linea);
}
}
}

static void Main(string[] args)


{
Matriz9 ma = new Matriz9();
ma.Cargar();
Console.ReadKey();
}
}
}
- Listas enlazadas
Caso: Hay una fila para la consulta de pediatría, se necesita una manera de
crear turnos sin la necesidad de que los clientes estén parados y así tener más
orden.
Solución: se crea una lista enlazada con los nombres de las personas de la fila
desde la cabeza hasta la cola y así cuando entre a consulta un usuario saber
quién sigue después.
La lista enlazada se utiliza para almacenar datos en un orden, se pone 1 dato
por nodo logrando una cadena, sirve para determinar quien se encuentra
después pero no antes.

using System;

namespace ListaEnlazada
{
public class Nodo
{
private string Nombre;

public Nodo sig;


public Nodo(string nombre) { this.Nombre = nombre; this.sig = null; }

public void Mostrar() { Console.WriteLine("Nombre :{0}", this.Nombre); }

public string NOMBRE { get { return (Nombre); } }

- Colas
Caso: se requiere una lista de todas las personas (cedulas) registradas en un
hotel por orden de entrada.
Solución: se crea una cola haciendo que las personas que entraron primero,
salgan primero en la lista.
Las colas son necesarias cuando se necesita el listado de quien entro primero y
esta es la única estructura es esa condición.

using System; raiz = nuevo;


using System.Collections.Generic; fondo = nuevo;
using System.Linq; }
using System.Text; else
{
namespace ListasTipoCola1 fondo.sig = nuevo;
{ fondo = nuevo;
class Cola }
{ }
class Nodo
{
public int info;
public Nodo sig; public void Imprimir()
} {
Nodo reco = raiz;
private Nodo raiz, fondo; Console.WriteLine("Listado
de todos los elementos de la cola.");
public Cola() while (reco != null)
{ {
raiz = null; Console.Write(reco.info
fondo = null; + "-");
} reco = reco.sig;
}
public bool Vacia() Console.WriteLine();
{ }
if (raiz == null)
return true; static void Main(string[] args)
else {
return false; Cola cola1 = new Cola();
} cola1.Insertar(123);
cola1.Insertar(456);
public void Insertar(int info) cola1.Insertar(789);
{ cola1.Imprimir();
Nodo nuevo; Console.ReadKey();
nuevo = new Nodo(); }
nuevo.info = info; }
nuevo.sig = null; }
if (Vacia())
{
- Pilas
Caso: se requiere ordenar libros de antiguos a modernos por año.
Solución: se crea una pila empezando por los libros antiguos y terminando en
los modernos y este devolverá de actual a moderno por año.
Las pilas son utilizadas para extraer los valores últimos, son necesarias porque
existen casos en que se requieren.

using System; {
using System.Collections.Generic; int informacion =
using System.Linq; raiz.info;
using System.Text; raiz = raiz.sig;
return informacion;
namespace ListasTipoPila1 }
{ else
class Pila {
{ return int.MaxValue;
class Nodo }
{ }
public int info;
public Nodo sig; public void Imprimir()
} {
Nodo reco = raiz;
private Nodo raiz; Console.WriteLine("Listado
de todos los elementos de la pila.");
public Pila() while (reco != null)
{ {
raiz = null; Console.Write(reco.info
} + "-");
reco = reco.sig;
public void Insertar(int x) }
{ Console.WriteLine();
Nodo nuevo; }
nuevo = new Nodo();
nuevo.info = x; static void Main(string[] args)
if (raiz == null) {
{ Pila pila1 = new Pila();
nuevo.sig = null; pila1.Insertar(1999);
raiz = nuevo; pila1.Insertar(2000);
} pila1.Insertar(2005);
else pila1.Imprimir();
{
nuevo.sig = raiz; Console.WriteLine("Extraemos de la
raiz = nuevo; pila:" + pila1.Extraer());
} pila1.Imprimir();
} Console.ReadKey();
}
public int Extraer() }
{ }
if (raiz != null)

También podría gustarte