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

¡Vamos a construir una lista enlazada desde cero! Crearás una estructura de datos donde cada nodo apunta al siguiente, formando una cadena de valores conectados en memoria.

Organizarás tu código en dos archivos:

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

Se proporcionarán las siguientes entradas:

  • Línea 1: Primer valor para agregar al final (append)
  • Línea 2: Segundo valor para agregar al final (append)
  • Línea 3: Valor para agregar al principio (prepend)

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

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

Por ejemplo, dados 10, 20 y 5, tu salida debería ser:

5 -> 10 -> 20 -> nil

El método Append necesita recorrer hasta el final de la lista (donde Next es nil) antes de agregar el nuevo nodo. El método Prepend debe crear un nuevo nodo, apuntar su Next al head actual y luego actualizar el head al nuevo nodo. Recuerda que una lista vacía tiene un head nil, así que maneja 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