Módulo 01: Fundamentos da Computação • Ciência da Computação Formal


🗺️ 1. Mapa Comparativo das Estruturas Lineares

flowchart LR
    A["Estruturas Lineares"] --> VEC["Vetor / Array
(Acesso O(1), Inserção O(n))"]
    A --> LIST["Lista Encadeada
(Inserção O(1), Acesso O(n))"]
    A --> STACK["Pilha (LIFO)
(Push/Pop O(1))"]
    A --> QUEUE["Fila (FIFO)
(Enqueue/Dequeue O(1))"]

    style VEC fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style LIST fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
    style STACK fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style QUEUE fill:#e8f5e9,stroke:#4caf50,stroke-width:2px

🏛️ 2. Fundamentação Teórica e Análise de Complexidade

Estrutura de Dados Acesso por Índice Busca de Elemento Inserção no Início Inserção no Fim Remoção no Início
Vetor Estático (Array) $O(1)$ $O(n)$ $O(n)$ $O(1)^*$ $O(n)$
Lista Simplesmente Encadeada $O(n)$ $O(n)$ $O(1)$ $O(1)$ $O(1)$
Lista Duplamente Encadeada $O(n)$ $O(n)$ $O(1)$ $O(1)$ $O(1)$
Pilha (LIFO - Stack) $O(n)$ $O(n)$ $O(1)$ $O(1)$
Fila (FIFO - Queue) $O(n)$ $O(n)$ $O(1)$ $O(1)$

💻 3. Implementação de Lista Duplamente Encadeada em Python

class Node:
    def __init__(self, val):
        self.val = val
        self.prev = None
        self.next = None

class DoublyLinkedList:
    def __init__(self):
        self.head = None
        self.tail = None
        self.size = 0

    def append(self, val):
        new_node = Node(val)
        if not self.head:
            self.head = self.tail = new_node
        else:
            new_node.prev = self.tail
            self.tail.next = new_node
            self.tail = new_node
        self.size += 1

    def to_list(self):
        res = []
        curr = self.head
        while curr:
            res.append(curr.val)
            curr = curr.next
        return res

if __name__ == "__main__":
    dll = DoublyLinkedList()
    for v in [10, 20, 30, 40]:
        dll.append(v)
    print(f"Lista Duplamente Encadeada: {dll.to_list()} (Tamanho: {dll.size})")

🔗 Recursos Pedagógicos do Capítulo 05

Recurso Didático Finalidade Link de Acesso
📊 Slides de Aula Apresentação visual interativa com Dark Mode e suporte a teclado Ver Slides
🧠 Quiz Formativo Teste interativo de fixação com feedback imediato por alternativa Fazer Quiz
💻 Exemplos de Código Demonstrações funcionais com código executável Ver Exemplos
🧩 Exercícios em 4 Níveis Lista progressiva de fixação com gabarito em bloco colapsável Resolver Exercícios

⬅️ Capítulo Anterior 📚 Sumário de Tópicos Próximo Capítulo ➡️