0% encontró este documento útil (0 votos)
41 vistas8 páginas

Estructura de Datos y Algoritmos Tarea Vi

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas8 páginas

Estructura de Datos y Algoritmos Tarea Vi

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

ESCUELA DE INGENIERÍA Y TECNOLOGÍA

PARTICIPANTE

DARLYN GIOMAL FRANCISCO PEÑA

MATRÍCULA

100011821

ASIGNATURA

ESTRUCTURA DE DATOS Y ALGORITMOS

TEMA

TAREA 6

FACILITADORA

Loida Charles Ramírez

FECHA

12 de Diciembre de 2024

Santiago de los Caballeros


República Dominicana
1. Crear un programa que haga uso de la clase lista enlazada para realizar las
siguientes acciones:
o Agregar al menos 5 valores a la lista.
o Imprimir la lista.
o Buscar si un valor está presente en la lista.
o Eliminar un valor de la lista.
o Volver a imprimir la lista después de la eliminación.

Condiciones:
 El código debe estar bien estructurado y con comentarios explicativos.
 Utiliza la estructura de lista enlazada simple (cada nodo tiene solo un puntero
al siguiente nodo).
 El programa debe manejar correctamente la manipulación de nodos de la lista,
tanto al agregar como al eliminar.

CODIGO DEL PROGRAMA

using System;
// Clase Nodo que representa cada elemento de la lista
enlazada
public class Nodo
{
public int Valor; // Valor almacenado en el nodo
public Nodo Siguiente; // Puntero al siguiente nodo

public Nodo(int valor)


{
Valor = valor;
Siguiente = null;
}
}

// Clase ListaEnlazada que gestiona los nodos


public class ListaEnlazada
{
private Nodo cabeza; // Primer nodo de la lista

public ListaEnlazada()
{
cabeza = null;
}

// Método para agregar un nodo al final de la lista


public void Agregar(int valor)
{
Nodo nuevoNodo = new Nodo(valor);

if (cabeza == null)
{
cabeza = nuevoNodo;
}
else
{
Nodo actual = cabeza;
while (actual.Siguiente != null)
{
actual = actual.Siguiente;
}
actual.Siguiente = nuevoNodo;
}
}

// Método para imprimir los valores de la lista


public void Imprimir()
{
if (cabeza == null)
{
Console.WriteLine("La lista está vacía.");
return;
}

Nodo actual = cabeza;


Console.Write("Lista: ");
while (actual != null)
{
Console.Write(actual.Valor + " -> ");
actual = actual.Siguiente;
}
Console.WriteLine("null");
}

// Método para buscar un valor en la lista


public bool Buscar(int valor)
{
Nodo actual = cabeza;
while (actual != null)
{
if (actual.Valor == valor)
{
return true;
}
actual = actual.Siguiente;
}
return false;
}

// Método para eliminar un nodo con un valor específico


public void Eliminar(int valor)
{
if (cabeza == null)
{
Console.WriteLine("La lista está vacía, no se
puede eliminar.");
return;
}

if (cabeza.Valor == valor)
{
cabeza = cabeza.Siguiente;
Console.WriteLine($"Valor {valor} eliminado.");
return;
}

Nodo actual = cabeza;


while (actual.Siguiente != null &&
actual.Siguiente.Valor != valor)
{
actual = actual.Siguiente;
}

if (actual.Siguiente == null)
{
Console.WriteLine($"El valor {valor} no se
encuentra en la lista.");
}
else
{
actual.Siguiente = actual.Siguiente.Siguiente;
Console.WriteLine($"Valor {valor} eliminado.");
}
}
}

// Programa principal
public class Program
{
public static void Main(string[] args)
{
ListaEnlazada lista = new ListaEnlazada();

// Agregar valores a la lista


lista.Agregar(10);
lista.Agregar(20);
lista.Agregar(30);
lista.Agregar(40);
lista.Agregar(50);

// Imprimir la lista
Console.WriteLine("Lista original:");
lista.Imprimir();

// Buscar un valor en la lista


int valorABuscar = 30;
Console.WriteLine($"¿El valor {valorABuscar} está en
la lista? {lista.Buscar(valorABuscar)}");

// Eliminar un valor de la lista


int valorAEliminar = 20;
lista.Eliminar(valorAEliminar);

// Imprimir la lista después de la eliminación


Console.WriteLine("Lista después de la
eliminación:");
lista.Imprimir();
}
}
EJECUCION DEL PROGRAMA

También podría gustarte