Está en la página 1de 5

Ejercicio 1

Crear un ejemplo de operaciones básicas con listas, que el programa permita definir una cantidad
de dígitos a introducir, decidir cuáles son los dígitos a introducir ya con estos datos el programa
deberá mostrar la lista, sumar todos los dígitos introducidos y mostrar cual es el dígito mayor
Ejemplo en C#:
namespace Lista
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Introduce la cantidad de dígitos a agregar:");
int cantidadDigitos = Convert.ToInt32(Console.ReadLine());

List<int> numeros = new List<int>();

for (int i = 0; i < cantidadDigitos; i++)


{
Console.WriteLine("Introduce el dígito #" + (i + 1) + ":");
int digito = Convert.ToInt32(Console.ReadLine());
numeros.Add(digito);
}

Console.WriteLine("Elementos en la lista:");
foreach (int num in numeros)
{
Console.WriteLine(num);
}

// Calcular la suma de los elementos en la lista


int suma = 0;
foreach (int num in numeros)
{
suma += num;
}
Console.WriteLine("Suma de los elementos en la lista: " + suma);

// Encontrar el valor máximo en la lista


int maximo = numeros[0];
foreach (int num in numeros)
{
if (num > maximo)
{
maximo = num;
}
}
Console.WriteLine("Valor máximo en la lista: " + maximo);

// Resto del código para realizar otras operaciones con la lista...

Console.ReadLine();
}
}
}
Explicación del código
En este código, el programa solicita primero la cantidad de dígitos que se van a introducir. Luego,
en un bucle for, solicita cada dígito individualmente y lo agrega a la lista numeros. Posteriormente,
muestra los elementos en la lista y calcula la suma y el valor máximo en la lista.

Ejercicio 2:

¿Qué es una lista simplemente enlazada?

Una lista simplemente enlazada es una estructura de datos lineal donde los elementos, llamados
nodos, están conectados uno detrás del otro por medio de punteros. Cada nodo contiene dos
partes principales: un campo de datos (que puede ser cualquier tipo de información) y un puntero
que apunta al siguiente nodo en la lista. El último nodo de la lista apunta a null, indicando el final
de la lista.

Buscar un número en una lista simplemente enlazada


namespace Lista
{
class Nodo
{
public int Valor { get; set; }
public Nodo Siguiente { get; set; }

public Nodo(int valor)


{
Valor = valor;
Siguiente = null;
}
}

class Program
{
static void Main(string[] args)
{
Console.WriteLine("Introduce la cantidad de números:");
int cantidadNumeros = Convert.ToInt32(Console.ReadLine());

Nodo cabeza = null;

// Agregar elementos a la lista


for (int i = 0; i < cantidadNumeros; i++)
{
Console.WriteLine("Introduce el número #" + (i + 1) + ":");
int numero = Convert.ToInt32(Console.ReadLine());
cabeza = AgregarElemento(cabeza, numero);
}

// Mostrar la lista
Console.WriteLine("Lista enlazada:");
MostrarLista(cabeza);

Console.WriteLine("Introduce el número que quieres buscar:");


int numeroBuscar = Convert.ToInt32(Console.ReadLine());
if (BuscarElemento(cabeza, numeroBuscar))
{
Console.WriteLine("El número " + numeroBuscar + " se encuentra en la
lista.");
}
else
{
Console.WriteLine("El número " + numeroBuscar + " no se encuentra en
la lista.");
}

Console.ReadLine();
}

// Método para agregar un elemento a la lista


static Nodo AgregarElemento(Nodo cabeza, 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;
}
return cabeza;
}

// Método para mostrar la lista


static void MostrarLista(Nodo cabeza)
{
Nodo actual = cabeza;
while (actual != null)
{
Console.Write(actual.Valor + " ");
actual = actual.Siguiente;
}
Console.WriteLine();
}

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


static bool BuscarElemento(Nodo cabeza, int valor)
{
Nodo actual = cabeza;
while (actual != null)
{
if (actual.Valor == valor)
{
return true;
}
actual = actual.Siguiente;
}
return false;
}
}
}
En este código, después de mostrar la lista, el programa solicita al usuario introducir un número
que desea buscar en la lista. Luego, utiliza la función BuscarElemento para determinar si el
número está presente en la lista y muestra el resultado en consecuencia. Puedes ejecutar este
código en un proyecto de consola en Visual Studio para probarlo.

Ejercicio 3

¿Qué es una lista circular?

Una lista circular es una variante de la lista enlazada en la que el último nodo de la lista está
conectado al primer nodo, formando un bucle. Esto significa que no hay un final claro en la lista, ya
que el último nodo apunta de nuevo al primer nodo, creando una estructura circular.

Crear un programa que ilustre el comportamiento de una lista circular

class Nodo
{
public int Valor { get; set; }
public Nodo Siguiente { get; set; }

public Nodo(int valor)


{
Valor = valor;
Siguiente = null;
}
}

class ListaCircular
{
private Nodo cabeza;

public void AgregarElemento(int valor)


{
Nodo nuevoNodo = new Nodo(valor);
if (cabeza == null)
{
cabeza = nuevoNodo;
cabeza.Siguiente = cabeza; // Conectar el último nodo al primero en
una lista circular.
}
else
{
Nodo ultimoNodo = cabeza;
while (ultimoNodo.Siguiente != cabeza)
{
ultimoNodo = ultimoNodo.Siguiente;
}
ultimoNodo.Siguiente = nuevoNodo;
nuevoNodo.Siguiente = cabeza; // Conectar el nuevo nodo al primero
para formar el bucle.
}
}

public void MostrarLista()


{
if (cabeza == null)
{
Console.WriteLine("La lista está vacía.");
}
else
{
Nodo nodoActual = cabeza;
do
{
Console.Write(nodoActual.Valor + " ");
nodoActual = nodoActual.Siguiente;
} while (nodoActual != cabeza);
Console.WriteLine();
}
}
}

class Program
{
static void Main(string[] args)
{
ListaCircular lista = new ListaCircular();
lista.AgregarElemento(1);
lista.AgregarElemento(2);
lista.AgregarElemento(3);
lista.AgregarElemento(4);

Console.WriteLine("Lista circular:");
lista.MostrarLista();

Console.ReadLine();
}
}

Se crea una clase Nodo para representar los nodos en la lista circular. La clase ListaCircular tiene
un método AgregarElemento para agregar elementos a la lista y un método MostrarLista para
mostrar los elementos en la lista circular. En el método AgregarElemento, se asegura de que el
último nodo esté conectado al primer nodo para formar el bucle de la lista circular. Puedes
ejecutar este código en un proyecto de consola en Visual Studio para ver cómo funciona una lista
circular en acción.

También podría gustarte