A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Listas lineares Listas Lineares Pilha Fila Fila Dupla Entrada restrita Saída restrita.

Apresentações semelhantes


Apresentação em tema: "Listas lineares Listas Lineares Pilha Fila Fila Dupla Entrada restrita Saída restrita."— Transcrição da apresentação:

1 Listas lineares Listas Lineares Pilha Fila Fila Dupla Entrada restrita Saída restrita

2 Listas lineares Conjunto de elementos (nós) agrupados. Algumas Operações: Acesso a um determinado elemento Inserção de elementos Remoção de elementos Cópia de listas Combinação de listas Particionamento de listas Ordenação de listas Outras...

3 Listas lineares Alocação: Estática: durante compilação. Dinâmica: durante execução. Agrupamento: Seqüêncial: espaço contínuo de memória Encadeada: células dispersas na memória

4 Pilha BASE TOPO SAÍDA ENTRADA Elemento 1 Elemento 2

5 Pilha Operações primitivas: Inicializar a pilha: prepara a pilha para utilização, sem nenhum elemento. Pilha Vazia: verifica se a pilha está vazia. Pilha Cheia: verifica se a pilha está cheia. Empilha Elemento: insere um elemento no topo da pilha. Desempilha: retira o elemento do topo da pilha. Topo: retorna o elemento do topo da pilha.

6 Pilhas – Implementação (alocação dinâmica, agrupamento seqüencial) Atributos necessários para armazenar dados da classe: um vetor que armazenará os elementos empilhados uma variável de controle com a posição do topo da pilha e uma com o número máximo de elementos da pilha. public class Pilha { private object [] elementos; private int topo, max;...

7 Pilhas – Implementação (alocação dinâmica, agrupamento seqüencial) O vetor de elementos é do tipo object para que qualquer objeto possa ser empilhado. Os atributos são privados pois os usuários da classe não devem acessá-los diretamente, somente através dos métodos de empilhar, desempilhar etc. public class Pilha { private object [] elementos; private int topo, max;...

8 Pilhas – Implementação (alocação dinâmica, agrupamento seqüencial) A inicialização da pilha é feita no seu construtor. Nesse momento, o usuário da classe deve informar a quantidade máxima de elementos para a alocação dinâmica. public class Pilha {... public Pilha(int maximo) { max = maximo; elementos = new object[max]; topo = 0; }...

9 Pilhas – Implementação (alocação dinâmica, agrupamento seqüencial) O método para empilhar (Push) deve verificar se a pilha não está cheia, empilhar o elemento no vetor e incrementar o topo. public class Pilha {... public void Push(object x) { if (PilhaCheia()) throw new Exception(Pilha Cheia!); elementos[topo++] = x; }...

10 Pilhas – Implementação (alocação dinâmica, agrupamento seqüencial) O método para desempilhar (Pop) deve verificar se a pilha não está vazia, desempilhar o elemento no vetor e decrementar o topo. public class Pilha {... public object Pop() { if (PilhaVazia()) throw new Exception(Pilha Vazia!); return elementos[--topo]; }...

11 Pilhas – Implementação (alocação dinâmica, agrupamento seqüencial) Implemente as funções restantes: pilha vazia, pilha cheia e função topo. Simule o funcionamento da pilha com este exemplo de código:... Pilha p = new Pilha(10); p.Push(1); p.Push(2); p.Push(3); int x = Convert.ToInt32(p.Pop());...


Carregar ppt "Listas lineares Listas Lineares Pilha Fila Fila Dupla Entrada restrita Saída restrita."

Apresentações semelhantes


Anúncios Google