Estrutura de Dados pilha 3 / fila

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


Publicado 46 artigos originais · ganhou elogios 15 · vê 30000 +

Acho que você gosta

Origin blog.csdn.net/qq_41850194/article/details/102457833
Recomendado
Clasificación