Pilha / Queue - constrangidos linear mesa
A. Stack
1. Conceito
Elementos de dados durar fora
No topo da pilha só pode inserir ou remover
uma pilha de inserções e deleções chamado empurrando e estalo
2. Estrutura de armazenamento
(1) sequência de pilha
Pilha / final da pilha variáveis "ponteiro" pode ser um número inteiro ou variável ponteiro
A extremidade de cauda do ponteiro de pilha para a pilha
é inicialmente ① NULL, ponteiro ② -1, moldando
O elemento de topo do ponteiro de pilha para a próxima posição, o ponto inicial para a extremidade da pilha
julgamento vazio:
①top base = = NULL, a variável ponteiro
②top = base = -1, variável inteiro
julgamento vazio escolha pseudocódigo: S.top == 0
(2) pilha link (nó sem cabeça - vermelho):
Apenas stack pointer
ponteiro da pilha a um, um ponto de aₙ₋₁ ...
3. A pilha de aplicação
Princípio: O estado atual da pilha com função de memória
do aplicativo: chamar a função / recursiva / parêntese correspondência / avaliação de expressão
⇒ recursiva complexidade espaço algoritmo é geralmente 0 (log n), como uma espécie rápida
II. Queue
1. Conceito
FIFO elementos de dados
da frente: cabeça Equipe (elementos de remover)
POSTERIOR: a cauda (inserir elementos)
2. Estrutura de armazenamento
2-1 Order - fila cíclica
(1) da cabeça da equipa / equipa ponteiros cauda
① são inteiro variáveis
② ponteiro cabeça fila aponta sempre para a cabeça do elemento de fila
③ de indicador de fim de fila aponta sempre para a próxima localização do elemento da cauda, inicialmente aponta para o primeiro time: frente = traseiro = 0 (Teoria determinação esvaziar)
(2) frase esvaziar:
TRASEIRO = frontal (requer menos declarada com um elemento)
caso contrário, pode realmente ser uma equipe completa, em vez de equipe vazio
(3) frase completa (padrão menos espaço, a menos que declarado com tag):
quando o espaço restante é alocado espaço de memória na fila: equipe completa
Analisando equipa completo: (traseira + 1)% m = q.front
(4) o número de elementos:
(REAR-fromt o m +) m%
m como (o número de não elemento) comprimento de matriz
(5) de inserção, elementos de exclusão (padrão menos espaço)
① inserido (na cauda): = traseiros (traseira + 1 ) m%
② Apagar (em HOL): = frontais (frente + 1) m%
2-2 fila de cadeia (o nó principal)
Cabeça-ponteiro para o primeiro nó,
o ponteiro de terminal, inicialmente, aponta para o primeiro nó
determinação esvaziar: frente = traseiro
resumo
1. Pointer
(1) podem ser armazenados sequencialmente na variável conformação ponteiro pode ser utilizado para identificar a posição
① pilha (elemento superior): uma variável ponteiro (livro de texto)
(elementos fila cauda) ② fila: modelar, o identificador de posição (comuns). Uma vez que a fila circular sem plástico será muito problemático
(2) as variáveis de ponteiro cadeia são armazenados
2. ponteiro de terminal (parte superior da cauda pilha / fila)
(1) são sequencialmente armazenado (não vazia): um elementos de arrasto apontar para a próxima posição
① pilha
pontos ponteiro de pilha para a extremidade inicial da pilha de topo = base = nula (livros, variável de ponteiro)
Topo = Base de Dados = -1 (o outro, variáveis inteiras)
② o ponteiro fila cauda inicialmente aponta para a primeira frente de equipa = traseiro = 0 (teoria determinação em branco)
(2) as cadeias de lojas: aponta para a posição actual do elemento (não aponta para a posição seguinte)
① pilha (sem nó principal): Apenas uma cauda ponteiro de pilha
② fila (primeiro nó): O ponteiro de cauda inicialmente aponta para o primeiro nó
3. locais de teste
1: é uma operação linear restrita natureza do mesas em pilhas e filas