TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Estruturas De Dados Em C# - Fila E Pilha

Monografias: Estruturas De Dados Em C# - Fila E Pilha. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  29/5/2014  •  1.310 Palavras (6 Páginas)  •  1.029 Visualizações

Página 1 de 6

Estruturas de Dados em C#: Part 2 -> Pilha

Nessa série de estruturas de dados em C#, vou regredir um pouco, pois acabei por engano me esquecendo de estruturas mais simples, que devem ser mostradas antes da Lista Simplesmente Encadeada, Pilha e Fila.

Hoje mostrarei uma pilha aqui. A estrutura de dados Pilha(Stack), como o próprio nome já diz se dispõe a empilhar os dados, como se fossem uma pilha de livros.

Essa estrutura é do tipo LIFO, last-in-first-out, ou seja o último a entraré o primeiro a sair, da mesma forma como seria uma pilha de livros, o último livro depositado na pilha precisa ser o primeiro a sair para não desmontar a pilha e desorganizar tudo que estava empilhado.

Nossa classe Stack é bem simples, com propriedades quem informam se a pilha está vazia e quantos objetos estão empilhados na pilha e métodos para remoção, inserção e listagem de objetos, seguindo a linha de raciocínio LIFO.

Um método interessante é o ToArray(), que gera um array da sua pilha, no caso um array seria a primeira estrutura um pouco mais complexa para se armazenar dados, mas não precisamos abordar ele aqui pois já é de conhecimento de todos certo?

Antes da codificação vale lembrar que a biblioteca de classes do .NET Framework já vem com uma implementação para pilha de dados LIFO, ela está localizada no Namespace System.Collections.Stack, você pode ver que os métodos são muito próximos desses mostrados aqui.

Vejam as classes, Stack e Objects, onde objects seria uma coleção de objetos para facilitar o nosso trabalho, deixando tudo mais limpo, como no exemplo anterior da Lista Simplesmente Encadeada.

using System;

using System.Collections;

namespace Estruturas

{

public class Stack

{

private object top = null;

private Objects objs = new Objects();

private bool isEmpty = true;

private int count = 0;

public bool IsEmpty

{get{return isEmpty;}}

public int Count

{get{return count;}}

public void Push(object obj)

{

objs.Add(obj);

count++;

top = obj;

if(isEmpty)

isEmpty = false;

}

public object Pop()

{

object robj = null;

if(!isEmpty)

{

robj = top;

objs.Remove(count–);

if(count > 0)

top = objs[count-1];

else

{

top = null;

isEmpty = true;

}

}

return robj;

}

public object Peek()

{return top;}

public void Clear()

...

Baixar como (para membros premium)  txt (4 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com