Listas, deques, pilhas e filas

Ligações seguras, operações nas extremidades e análise amortizada de uma fila com duas pilhas.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Ligações sem perder nós

  • Frente: cria o nó já com a ligação antiga, depois muda primeiro.
  • Remoção: altera primeiro a ligação de entrada, depois liberta. A ligação pode ser primeiro ou anterior.seguinte.
  • Ao apagar todos os iguais, revê a mesma ligação. Em [5,5,3], avançar logo perdia o segundo 5.
  • Posição k pede 0<=k<tamanho. Achar a ligação custa O(k+1)O(k+1); religar custa O(1)O(1).

Dupla remove nó conhecido em O(1)O(1) mas localiza por índice em O(n)O(n). Circular com sentinela termina ao voltar à sentinela.

Cortar e juntar

  • separar(resto,k) quer destino vazio e distinto. k<=0 leva tudo; k>=n leva nada. Corta com nulo e reparte tamanhos.
  • Intercala ordenadas: escolhe a menor frente, esquerda no empate, e liga o resto quando uma acaba. Sem criar nós, auxiliar O(1)O(1).
  • Custo de pior caso O(a+b)O(a+b) para entradas de tamanhos aa e bb. Não é Θ\Theta por entrada: intercalar [1] com [2,\dots,n] faz uma comparação e depois liga o resto.

Pilha, fila e deque

Depois de 4, 7, 2Sai primeiroResto
Pilha27, 4
Fila47, 2

Deque aceita ambas as extremidades. Array circular usa (inicio+i)%capacidade com tamanho guardado.

Duas pilhas fazem uma fila

entrada recebe; saida tem o mais antigo no topo.

  1. Só transfere tudo quando saida está vazia.
  2. Vazia nas duas significa fila vazia.
  1. Entram 3 e 5
    entrada: 3, 5saída: vazia
    Retirar transfere e devolve 3.
  2. Entra 8
    entrada: 8saída: 5
    Devolve 5 sem mexer em 8.
  3. Esvazia saída
    entrada: vaziasaída: vazia
    Transfere 8. Ordem: 3, 5, 8.
Transferir inverte a ordem e põe o mais antigo no topo.

Cada elemento muda de pilha uma vez por passagem. m operações custam O(m)O(m): O(1)O(1) amortizado.

Parênteses e próximos maiores

  • Fecha só com topo correspondente e pilha não vazia. ([)] falha apesar das contagens.
  • Próximo estritamente maior: guarda índices sem resposta por ordem não crescente. Cada índice entra e sai uma vez, logo O(n)O(n).

Código e traços.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.