Algoritmos de Estructuras de Datos: Pilas, Colas y Arreglos en Pseudocódigo

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,99 KB

Operaciones con Pilas (Stacks)

Función: Comprobar si está vacía

Esta función permite verificar si la pila carece de elementos mediante el estado del tope.

Función PilaVacia(tope):
    Si tope == -1 Entonces
        Retornar VERDADERO
    Sino
        Retornar FALSO
    Fin Si
Fin Función

Función: Comprobar si está llena

Determina si la estructura ha alcanzado su capacidad máxima.

Función PilaLlena(tope, tamaño_maximo):
    Si tope == tamaño_maximo - 1 Entonces
        Retornar VERDADERO
    Sino
        Retornar FALSO
    Fin Si
Fin Función

Función: PUSH (Insertar al tope)

Añade un nuevo dato en la parte superior de la pila, siempre que no haya desbordamiento.

Función Push(pila, tope, tamaño_maximo, dato_nuevo):
    Si PilaLlena(tope, tamaño_maximo) == FALSO Entonces
        tope = tope + 1
        pila[tope] = dato_nuevo
        Imprimir "Dato insertado: ", dato_nuevo
    Sino
        Imprimir "Error: Desbordamiento (Pila llena)"
    Fin Si
Fin Función

Función: POP (Extraer del tope)

Elimina y retorna el elemento situado en el tope de la pila.

Función Pop(pila, tope):
    Si PilaVacia(tope) == FALSO Entonces
        dato_extraido = pila[tope]
        tope = tope - 1
        Retornar dato_extraido
    Sino
        Imprimir "Error: Pila vacía"
        Retornar NULO
    Fin Si
Fin Función

Función: PEEK o TOP (Ver sin extraer)

Permite consultar el valor del tope sin modificar la estructura.

Función Peek(pila, tope):
    Si PilaVacia(tope) == FALSO Entonces
        Retornar pila[tope]
    Sino
        Imprimir "La pila está vacía"
        Retornar NULO
    Fin Si
Fin Función

Operaciones con Colas (Queues)

Función: ENCOLAR (Push / Insertar al final)

Inserta un elemento al final de la cola incrementando el contador de elementos.

Función Encolar(cola, final, cantidad_elementos, tamaño_maximo, dato_nuevo):
    Si cantidad_elementos < tamaño_maximo Entonces
        final = final + 1
        cola[final] = dato_nuevo
        cantidad_elementos = cantidad_elementos + 1
        Imprimir "Se encoló: ", dato_nuevo
    Sino
        Imprimir "Error: La cola está llena"
    Fin Si
Fin Función

Función: DESENCOLAR (Pop / Extraer del frente)

Extrae el elemento que se encuentra en el frente de la cola (lógica FIFO).

Función Desencolar(cola, frente, cantidad_elementos):
    Si ColaVacia(cantidad_elementos) == FALSO Entonces
        dato_atendido = cola[frente]
        frente = frente + 1
        cantidad_elementos = cantidad_elementos - 1
        Retornar dato_atendido
    Sino
        Imprimir "Error: No hay elementos en la cola"
        Retornar NULO
    Fin Si
Fin Función

Operaciones con Arreglos (Arrays)

Función: Buscar un elemento (Búsqueda Lineal)

Recorre el arreglo secuencialmente para localizar un valor específico.

Función Buscar(arreglo, tamaño_actual, valor_buscado):
    Para i desde 0 hasta tamaño_actual - 1 Hacer:
        Si arreglo[i] == valor_buscado Entonces
            Retornar i  // Retorna el índice
        Fin Si
    Fin Para
    Retornar -1 // Retorna -1 si no existe en el arreglo
Fin Función

Función: Eliminar un elemento por su índice

Elimina un elemento desplazando los componentes restantes para mantener la integridad del arreglo.

Función EliminarElemento(arreglo, tamaño_actual, indice_a_eliminar):
    Para i desde indice_a_eliminar hasta tamaño_actual - 2 Hacer:
        arreglo[i] = arreglo[i + 1]
    Fin Para
    tamaño_actual = tamaño_actual - 1 // Reducimos el tamaño
    Imprimir "Elemento eliminado correctamente."
Fin Función

Entradas relacionadas: