Menu
Coddy logo textTech

Resumen - Constructor de Linked List

Parte de la sección Programación Orientada a Objetos del Journey de GO de Coddy. Lección 24 de 107.

challenge icon

Desafío

Fácil

¡Construyamos una lista enlazada desde cero! Crearás una estructura de datos en la que cada nodo apunta al siguiente, formando una cadena de valores conectados en la memoria.

Organizarás tu código en dos archivos:

  • linkedlist.go: Define una estructura Node con campos Value (int) y Next (*Node). Crea una estructura LinkedList que contenga un puntero al nodo Head. Implementa estos métodos en *LinkedList:
    • Append: añade un nodo nuevo con el valor indicado al final de la lista
    • Prepend: añade un nodo nuevo con el valor indicado al principio de la lista
    • Print: recorre la lista e imprime todos los valores separados por -> , terminando con nil
  • main.go: Lee valores de la entrada, construye una lista enlazada añadiendo nodos al final y al principio, después imprime la estructura final de la lista.

Se proporcionarán las siguientes entradas:

  • Línea 1: Primer valor que se añadirá al final
  • Línea 2: Segundo valor que se añadirá al final
  • Línea 3: Valor que se añadirá al principio

Tu método Print debe mostrar la lista con este formato:

[value1] -> [value2] -> [value3] -> nil

Por ejemplo, dados 10, 20 y 5, tu salida debe ser:

5 -> 10 -> 20 -> nil

El método Append debe recorrer la lista hasta el final (donde Next es nil) antes de añadir el nodo nuevo. El método Prepend debe crear un nodo nuevo, hacer que su Next apunte a la cabeza actual y después actualizar la cabeza para que apunte al nodo nuevo. Recuerda que una lista vacía tiene una cabeza nil, así que debes contemplar ese caso en tu método Append.

Pruébalo tú mismo

package main

import "fmt"

func main() {
	// Leer los valores de entrada
	var val1, val2, val3 int
	fmt.Scanln(&val1)
	fmt.Scanln(&val2)
	fmt.Scanln(&val3)

	// Crear una nueva lista enlazada
	list := &LinkedList{}

	// TODO: Usar Append para añadir val1 y val2 a la lista

	// TODO: Usar Prepend para añadir val3 al principio de la lista

	// TODO: Imprimir la estructura final de la lista
}

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de Go online