Coleção de Dados. Coleções de Dados Classificação 4/1/2011
|
|
- Gilberto Sales Ávila
- 5 Há anos
- Visualizações:
Transcrição
1 Coleção de Dados Um conjunto de dados(objetos), organizados(estruturados) de alguma forma. As coleções possuem operações padrão como: adicionar; apagar; atualizar As coleções são divididas em dois grandes grupos: Lineares e Não-Lineares LINEARES Neste tipo os objetos são ordenados pela sua posição, ou seja, existe o primeiro objeto, segundo, terceiro, etc. Ex.: Vetor NÃO-LINEARES Neste tipo não existe uma ordem em seus objetos. Ex.: Árvore 8 Coleções de Dados Classificação 9 1
2 Coleções Lineares Considerando a forma de acesso aos objetos as coleções lineares podem ser divididas em três tipos: ACESSO DIRETO ACESSO SEQÜENCIAL ACESSO INDEXADO 10 Coleções Lineares Acesso Direto Neste tipo de coleção linear o acesso aos objetos pode ser feito em qualquer ordem É possível obter o terceiro objeto diretamente sem a necessidade de obter o primeiro e em seguida do segundo. Exemplos Obter elementos Vetor Selecionar uma música em um CD Obter registros em um Arquivo Estruturas de Dados Vetor (Array) Arquivo (File) 11 2
3 Coleções Lineares Acesso Sequencial Neste tipo de coleção linear o acesso aos objetos pode ser feito apenas em uma ordem seqüencial, Para obter o terceiro objeto e necessário primeiramente obter o primeiro e em seguida do segundo. Exemplos Retirar um caminhão estacionado em uma garagem abaixo Obter trechos de uma fita Vídeo Obter trechos de um arquivo de dados Estruturas de Dados Lista (List) Pilha (Stack) Fila (Queue) 12 Coleções Lineares Acesso Indexado Neste tipo de coleção linear o acesso aos objetos é feito a partir de uma chave. A chave deve ser única no conjunto a fim de permitir que a busca seja eficiente Exemplos: CPF, Número Matrícula, Número Conta Bancária Neste tipo de estrutura a chave pode estar armazenada juntamente com o objeto. Exemplo: Dicionário Lista Telefônica (Indexada por: número, Assinante, Categoria) Tabela Hash (Hash Table) Dicionário (Dictionary) 13 3
4 Lista Definição Uma lista é uma coleção de objetos que possuem uma relação de ordem entre si, ou seja, existe o primeiro; segundo; etc. a 1, a 2, a 3,..., a n n 0 Uma lista pode ter 0 ou mais objetos O número n é o TAMANHO da lista Uma LISTA VAZIA não possui objetos. Um lista é dita HOMOGÊNEA quando todos objetos são do mesmo tipo. 14 Lista Estática Utilizada para representar situações onde o número de objetos é FIXO Exemplos: Uma lista contendo disjuntores em um painel(o número máximo é fixo); Lista de equipamentos estocados em uma prateleira (o número de prateleiras é fixo). Lista de cabines telefônicas em uso (o número de cabines é fixo); Lista de passagens vendidas (o número de poltronas disponíveis é fixo); 15 4
5 Lista Dinâmica Utilizada para representar situações onde o número de elementos é variável, sendo que não é possível prever qual será o número máximo de objetos. Exemplos: Lista de circuitos de um painel (Cada painel poderá ter um número qualquer de circuitos); Lista de equipamentos adquiridos; Lista de telefones instalados em uma localidade; Lista de reservas feitas para um determinado vôo; 16 Lista Representação Considerando que a lista é uma coleção de objetos onde existe o primeiro, segundo, etc. Como podemos representá-la? LISTA ESTÁTICA Neste caso os objetos de uma lista estarão contidos em um Vetor LISTA DINÂMICA Neste caso os objetos da lista são alocados de forma dinâmica e um objeto qualquer deve conhecer a posição do seu próximo objeto. 17 5
6 Lista Estática Representação Para criar uma lista estática a partir de um vetor necessitamos basicamente das seguintes informações: Um vetor que conterá os objetos da lista (listdata) Este vetor irá conter um número máximo de objetos (MAXLISTSIZE) O vetor irá utilizar um tipo genérico de dados (T) Um número inteiro que indicará o número de objetos existentes nesta lista (size). Inicialmente o número de objetos é igual a zero. O número de objetos (size) deverá ser sempre menor ou igual que o tamanho do vetor (MAXLISTSIZE) O primeiro objeto será inserido da posição 0 do vetor (listdata) 18 Lista Estática Pontos Fortes x Pontos Fracos PONTOS FORTES Acesso direto indexado a qualquer objeto da lista Tempo constante para acessar o objeto i (depende somente do índice. PONTOS FRACOS Movimentação quando eliminado/ inserido objeto Tamanho máximo fixo, sendo necessário um conhecimento inicial deste número QUANDO UTILIZAR Em situações onde o tamanho máximo pode ser previsto Em situações onde a lista não irá conter um grande número de objetos. 19 6
7 Lista Estática Representação (C++) Lista será vista como uma classe Classe Lista Contém dois atributos Tamanho int size; Elementos T listdata[maxlistsize]; Classe fornecerá operações básicas sobre a lista Representação UML class Domain Objects List - size: int - listdata[maxlistsize]: T 20 Lista Estática Representação C padrão Representada como uma struct Struct List Contém dois membros Tamanho int size; Elementos T listdata[maxlistsize]; Representação C struct List { int size; T listdata[maxlistsize]; ; 21 7
8 Lista Operações Qualquer objeto da lista pode ser recuperado e/ou modificado É possível a inserção de novos objetos na lista É possível a remoção de objetos da lista Lista estática Algumas operações de inserção e remoção exigem um grande esforço Necessitam da movimentação de todos os outros objetos existentes na lista. 22 Lista Operações Recuperação e Modificação (C++) getsize Retorna o número de elementos int getsize(void) const; getfirst Retorna o primeiro de elemento int getfirst(t& elem) const; getlast Retorna o ultimo de elemento int getlast(t& elem) const; getdata Retorna o i-ésimo elemento int getdata(int pos, T& elem) const; //(1 pos size) setdata Altera o i-ésimo elemento int setdata(int pos, T& elem); //(1 pos size) find Encontra a primeira ocorrência bool find(t elem)const; Observação Todas as operações retornam 0 em caso de sucesso e diferente de zero em caso de erro 23 8
9 Lista Operações Recuperação e Modificação (C) getsize Retorna o número de elementos int getsize(struct List* l) const; getfirst Retorna o primeiro de elemento int getfirst(struct List* l, T* elem) const; getlast Retorna o ultimo de elemento int getlast(struct List* l, T* elem) const; getdata Retorna o i-ésimo elemento int getdata(struct List* l, int pos, T* elem)//(1 pos size) setdata Altera o i-ésimo elemento int setdata(struct List* l, int pos, T* elem)//(1 pos size) find Encontra a primeira ocorrência bool find(struct List* l, T elem)const; Observação Todas as operações retornam 0 em caso de sucesso e diferente de zero em caso de erro 24 Lista Operações Inserção Visão Geral O primeiro elemento é inserido na posição 0 do vetor O segundo a próxima posição (1) e assim sucessivamente Para realizar a inserção, em certos casos, é necessária a movimentação de todos os objetos existentes no vetor. Inserção na i-ésima posição, sendo posição < size 25 9
10 Lista Operações Inserção insert - Insere um elemento no final da lista int insert(const T& elem); insertfirst - Insere um elemento no início da lista int insertfirst(const t( t T& elem); insertlast Insere um elemento no final da lista int insertlast(const T& elem); insertat - Insere um elemento em uma posição qualquer int insertat(int pos, const T& elem); insertafter - Insere um elemento após uma posição informada int insertafter(int pos, const T& elem) insertbefore - Insere um elemento antes de uma posição int insertbefore(int pos, const T& elem) Observações O primeiro elemento está na posição 1 e assim sucessivamente ( 1 pos size) Todas as operações retornam 0 em caso de sucesso e diferente de zero em caso de erro 26 Lista Operações Remoção Da mesma forma que a inserção, a remoção em uma lista estática necessita, em certos, casos da movimentação de todos os elementos existentes na lista. Dependendo do tamanho da lista, esta operação exige um esforço computacional extra. Remoção de um elemento da i-ésima posição (posição < size) 27 10
11 Lista Operações Remoção remove - Remove a primeira ocorrência de um elemento int remove(const T&); removefirst - Remove o primeiro elemento da lista int removefirst(t& elem); removelast - Remove o ultimo elemento da lista int removelast(t& elem); Remove um elemento em uma posição especificada int removeat(int pos, T& elem); //(1 pos size) revomeafter - Remove um elemento após uma posição informada int removeafter(int t pos, T& elem); //(1 pos size) removebefore - Remove um elemento antes de uma posição int removebefore(int pos, T& elem); //(1 pos size) Remove todos os elementos da lista int removeall(); 28 Lista Operações Apoio isempty Indica se a lista está (true) ou não (false) vazia bool isempty(void) const; isfull Indica se a lista está (true) ou não (false) cheia bool isfull() const; print Imprime o conteúdo da lista void print(void) const; moveright Move todos os elementos uma posição para a direita a partir da posição da lista recebida int moveright(int pos); moveleft Move todos os elementos uma posição para a esquerda a partir da posição da lista recebida int moveleft(int pos); Observações O primeiro elemento está na posição 1 e assim sucessivamente ( 1 pos size) 29 11
12 Lista Estática Definição CPP (List.h) # include <iostream> # define imaxlistsize 32 typedef int T; class List { private: //Vetor que irá conter os objetos da lista T listdata[ imaxlistsize]; //Número de objetos da lista int isize; public: // constructor List(void); // Metodos Acessores //Recupera o número de objetos da lista int getsize(void) const; /Recupera a informação contida em uma determinada posição int getdata(int, T&) const; 30 Lista Estática Definição CPP (List.h) //Métodos Modificadores //Altera o conteudo da lista em uma determinada posição void setdata(int, T&); //Insere um objeto no final da lista void insert(const T&); //Remove a primeira ocorrência de um objeto da lista void remove(const T&); //Remove o primeiro objeto da lista int removefirst(const T&); //Remove todos os objetos da lista void removeall(void); //Outros métodos //Retorna um valor booleano indicando se a lista é o não vazia bool isempty(void) const; //Encontra a primeira ocorrência de um objeto da lista bool find(t&) const ; // imprime o conteudo da lista void print() const; ; 31 12
13 Lista Estática Implementação CPP (List.cpp) # include <iostream> # include "List.h" using namespace std; List::List(void){ //Tamanho inicial da lista é zero isize = 0; // retorna o número de objetos da lista int List::getSize(void) const{ return isize; 32 Lista Estática Implementação CPP (List.cpp) //Retorna o objeto existente em uma determinada posição da lista //Caso a posição seja inválida, retorna diferente de zero int List::getData(int pos, T& elem) const { if (pos < 0 pos >= isize) { cerr << "Posição inválida!!!" << endl; return 1; elem = listdata[pos]; return 0; //Altera o conteudo da lista em uma determinada posição int List::setData(int pos, T& data) { if (pos < 0 pos >= isize) { cerr << "Posição inválida!!!" << endl; return 1; listdata[pos] = data; return 0; 33 13
14 Lista Estática Implementação CPP (List.cpp) // Insere um objeto no final da lista int List::insert(const T& item){ //Caso o número de posições máximo tenha sido atingindo retorna if (isize >= imaxlistsize){ cerr << "O tamanho máximo da lista foi atingido!" << endl; return 1; // Insere um objeto no final da lista listdata[ isize] = item; // Incrementa o número de objetos isize++; 34 Lista Estática Implementação CPP (List.cpp) // Procura por um item na lista e remove a primeira ocorrência int List::remove(const T& item) { //Inicializa variável ii que será utilizada para percorrer a lista int ii(0); // Procura por um objeto while (ii < isize &&!(item == listdata[ii] )) ii++; //Caso ii seja igual ou maior que isize, então não foi encontrado if (ii == isize) return 1; //Decrementa o tamanho da lista isize--; // move os objetos seguintes da lista para esquerda uma posição, //ou seja o objeto da posição ii+1 será colocado na posição ii while (ii < isize){ listdata[ ii] = listdata[ ii+1] ; ii++; return 0; 35 14
15 Lista Estática Implementação CPP (List.cpp) // Verifica se a lista está vazia bool List::isEmpty(void) const { if (isize == 0) return true; else return false; // Remove todos os objetos da lista void List::removeAll(void){ isize = 0; 36 Lista Estática Implementação CPP (List.cpp) // Remove o primeiro objeto da lista e retorna o valor removido //Caso a posição seja inválida, o programa return diferente de zero int List::removeFirst(T& item) { T frontitem; // Caso a Lista esteja Vazia, finaliza o programa if (isempty()) { cerr << "Erro! Lista vazia..." << endl; return 1; //Recupera o primeiro objeto item = listdata[0] ; //Remove o primeiro objeto remove(item); // retorna o valor removido return 0; 37 15
16 Lista Estática Implementação CPP (List.cpp) //Este método irá percorrer a lista a fim de encontrar o objeto item //Caso o mesmo não seja encontrado retorna false bool List::find(T& item) const { int ii(0); //Caso a lista seja vazia retorna false if (isempty()) return false; //Procura pelo objeto na lista while (ii < isize &&!(item == listdata[ ii] )) ii++; //Caso ii seja igual ao tamanho da lista, indica que o item //nao foi encontrado if (ii == isize) return false; return true; 38 Lista Estática Implementação CPP (List.cpp) //Imprime o conteúdo da lista void List::print()const { int ii(0); //Caso a lista seja vazia retorna if (isempty()){ cout << "Lista Vazia!" << endl; return; cout << "Imprimindo o conteudo da lista..." << endl; while (ii < isize){ cout << "objeto: " << ii << " - " << listdata[ ii] << endl; ii++; 39 16
17 Pilha (Stack) Uma pilha é uma coleção de objetos que possuem uma relação de ordem entre si, ou seja, existe o primeiro; segundo; etc. Na pilha os objetos obedecem ao princípio "Último a entrar - Primeiro a sair" - LIFO (Last-in - First Out) a 1, a 2, a 3,..., a n n 0 Na pilha abaixo, o primeiro objeto a entrar foi o objeto a 1 e o último o objeto an, porém somente é possível a remoção do objeto a n. Para remover o objeto a 1 é necessário antes remover todos os outros objetos e finalmente será possível sua remoção O objeto a n é conhecido como o topo da pilha 40 Pilha (Stack) Uma pilha pode ter 0 ou mais elementos Uma PILHA VAZIA não possui elementos. Uma pilha, pode ser implementada como uma lista onde todas as inserções e remoções são feitas somente em uma de suas extremidades. O topo da pilha pode ser o último ou o primeiro objeto da lista
18 Pilha (Stack) Estática x Dinâmica Assim como a lista a pilha pode ser representada de forma estática ou dinâmica Pilha Estática Neste caso os objetos da pilha estarão contidos em um Vetor Pilha Dinâmica Neste caso os objetos da pilha são alocados de forma dinâmica Um elemento qualquer deve conhecer a posição do seu sucessor 42 Pilha (Stack) Estática Representação Para criar uma pilha estática a partir de um vetor necessitamos basicamente das seguintes informações: Um vetor que irá conter os objetos da pilha (stackdata). Este vetor irá conter um número máximo de objetos (imaxstacksize) O vetor irá utilizar um tipo genérico de dados (T) Um número inteiro que irá indicar o índice do TOPO da pilha (itop). Inicialmente o TOPO da pilha é igual a -1. O TOPO deverá ser sempre menor ou igual ao tamanho máximo do vetor (imaxstacksize) 43 18
19 Pilha Operações É possível a inserção (push) de novos objetos no TOPO da pilha É possível a remoção (pop) somente do objeto que se encontra no TOPO da pilha Somente o objeto que está no TOPO da pilha pode ser recuperado (peek) 44 Pilha Operações Inserção push Insere um elemento no topo da pilha caso a mesma não esteja cheia Retorna uma constante indicando sucesso ou falha int push (const T& item) 45 19
20 Pilha Operações Remoção pop Remove o objeto que se encontra no topo da Pilha Retorna o objeto removido e uma constante indicando sucesso ou falha int pop(t& item) C++ int pop(struct Stack* s, T* item) C removeall Remove todos os objetos que se encontram na Pilha void removeall() 46 Pilha Operações Consulta e Recuperação peek Recupera o elemento que se encontra no TOPO na pilha, sem no entanto retirá-lo Retorna uma constante indicando sucesso ou falha que ocorre quando a pilha está vazia, por exemplo int peek(t& item) getsize - Retorna o número de elementos na pilha int getsize(void) find Encontra a primeira ocorrência de um determinado objeto bool find(t& item) const 47 20
21 Pilha Operações Métodos de Apoio isempty Retorna um booleano indicando se a pilha está ou não vazia bool isempty(void) const; isfull Retorna um booleano indicando se a pilha está ou não cheia bool isfull(void) const; print Imprime o conteúdo da pilha Void print() const; 48 Pilha Definição - C #define MAXSTACKDATA 10 typedef double T; struct Stack { T stackdata[maxstackdata]; int itop; ; 49 21
22 Pilha Definição C++ #define MAXSTACKDATA 10 template <class T> class Stack { private: T stackdata[maxstackdata]; int itop; public: //operacoes ; 50 Pilha Definição Pilha.h # ifndef STACK_CLASS # define STACK_CLASS # include <iostream> # define imaxstacksize 32 typedef int T; class Stack { private: //Vetor que irá conter os elementos da pilha T stackdata[ imaxstacksize]; //Inteiro que indica o índice do topo da pilha int itop; public: //construtor Stack(void) 51 22
23 Pilha Definição Pilha.h //Operações de Modificação //Armazena um item na pilha no topo da pilha void push (const T&); //Remove o topo da pilha T pop (void); //Remove todos os objetos da pilha void removeall(void); //Operações de Consulta // Obtém objeto que se encontra no topo da pilha sem modifica-lo T peek (void) const; int getsize(void); ; #endif bool find(t& item) const; //Métodos de Apoio bool isempty(void) const; bool isfull(void) const; void print()const; 52 Pilha Implementação Pilha.cpp // Construtor do objeto pilha Stack::Stack (void){ itop = -1 //Armazena um item na pilha no topo da pilha int Stack::push (const T& item){ // Verifica se a pilha está cheia, retorna constante indicando erro if (isfull()) { cout << "A pilha está cheia!" << endl; return 1; // incrementa o topo da pilha itop++; //coloca o elemento no topo da pilha stackdata[itop] = item; return 0; 53 23
24 Pilha Implementação Pilha.cpp //Remove o topo da pilha e o elemento que se encontra nesta posição int Stack::pop (T& elem) { // Verifica se a pilha está vazia. Caso esteja retorna condição erro if (isempty()) { cout << "A pilha está vazia!" << endl; return 1; // obtem o elemento que está no topo elem = stackdata[ itop] ; //decrementa o topo da pilha itop--; return 0; 54 Pilha Implementação Pilha.cpp // Obtem o objeto que se encontra no topo da pilha sem modificá-la int Stack::peek (T& item) const { // Verifica se a pilha está vazia. Caso esteja o programa será finalizado if (isempty()) { cout << "A pilha está vazia!" << endl; return 1; item = stackdata[ itop] ; return 0; //Verifica se a pilha está vazia bool Stack::isEmpty(void) const { // Retorna true ou false, dependendo do resultado da comparação return (itop == -1); 55 24
25 Pilha Implementação Pilha.cpp //Verifica se a pilha está cheia bool Stack::isFull(void) const { // Retorna true ou false, dependendo do resultado da comparação return (itop == imaxstacksize-1); // Limpa a pilha void Stack::removeAll(void) { // Coloca o valor do topo como -1 itop = -1; 56 Pilha Implementação Pilha.cpp void Stack::print()const { //Começa a partir do topo int ii(itop); //Caso a pilha seja vazia retorna if (isempty()){ cout << "Pilha Vazia!" << endl; return; cout << "Imprimindo o conteudo da Pilha..." << endl; while (ii >= 0){ cout << "Elemento: " << ii << " - " << stackdata[ ii] << endl; ii--; # endif //STACK_CLASS 57 25
26 Pilha Implementação Pilha.cpp //Verifica se a pilha está cheia bool Stack::isFull(void) const { // Retorna true ou false, dependendo do resultado da comparação return (itop == imaxstacksize-1); // Limpa a pilha void Stack::removeAll(void) { // Coloca o valor do topo como -1 itop = -1; 58 Pilha Implementação Pilha.cpp void Stack::print()const { //Começa a partir do topo int ii(itop); //Caso a pilha seja vazia retorna if (isempty()){ cout << "Pilha Vazia!" << endl; return; cout << "Imprimindo o conteudo da Pilha..." << endl; while (ii >= 0){ cout << "Elemento: " << ii << " - " << stackdata[ ii] << endl; ii--; # endif //STACK_CLASS 59 26
27 Fila Uma fila é uma coleção de objetos que possuem uma relação de ordem entre si, ou seja, existe o primeiro; segundo; etc. Porém na pilha os objetos obedecem ao princípio "Primeiro a entrar - Primeiro a sair" - FIFO (First in First Out) a 1, a 2, a 3,..., a n n 0 Na fila acima, o primeiro objeto a entrar foi o objeto a 1 e o último a n. Somente é possível a remoção do objeto a1 Da mesma forma, caso um novo objeto seja inserido na fila a sua posição será n+1, visto que o último objeto que foi colocado na fila foi a n O objeto a 1 é conhecido como o início da fila O objeto a n é conhecido como o final da fila 60 Fila Definição Uma fila pode ter 0 ou mais objetos Uma FILA VAZIA não possui objetos. Uma fila, pode ser implementada como uma lista onde todas as inserções são feitas em uma extremidade e as remoções são feitas somente na outra extremidade da fila Neste caso o INIICIO da fila pode ser o primeiro elemento da lista O ÚLTIMO elemento da fila será o último da lista 61 27
28 Fila Estática x Dinâmica Assim como a lista a fila pode ser representada de forma estática ou dinâmica FILA ESTÁTICA Neste caso os objetos da fila estarão contidos em um Vetor FILA DINÂMICA Neste caso os objetos da fila são alocados de forma dinâmica Elemento qualquer deve conhecer a posição do seu elemento 62 Fila Estática Representação Inicial Informações necessárias para representar uma fila estática a partir de um vetor: Um vetor que conterá os elementos da Fila (queuedata). Este vetor irá conter um número máximo de elementos (MAXQUEUESIZE) O vetor irá utilizar um tipo genérico de dados (T) A posição 0 indicará o INÍCIO da fila. Um número inteiro indicará a próxima posição disponível no vetor após o final da fila (iback) 63 28
29 Representação Inicial Fila Deficiências Da maneira como a fila está modelada a mesma apresenta deficiências. Por exemplo, supondo que a fila possui um tamanho máximo de 1000 objetos e que esta cheia: Ao remover o objeto que está no TOPO da fila será necessário mover todos os objetos Desta forma a implementação da fila é ineficiente, pois exige um maior esforço computacional 64 Fila Representação Melhorada A fim de melhorar a representação da fila, será acrescentado um novo atributo no objeto. Neste caso será acrescentado um número inteiro (ifront) que indicará o INÍCIO da fila. Quando o objeto que está no início da fila for removido este valor será atualizado, desta forma não será necessário movimentar os objetos 65 29
30 Fila Representação Melhorada Exemplo A última inserção push(2) não é possível, mesmo com posições disponíveis no vetor. Como resolver isto? 66 Fila Representação Final Fila Circular A fim de resolver o problema anterior, será feita a seguinte modificação na fila: Neste caso a fila irá se comportar de maneira circular ou seja: Quando um novo elemento for inserindo última posição do vetor (imaxqueuesize-1) o valor de iback será igual a zero, ou seja a primeira posição do vetor No exemplo a variação do iback deveria ser da seguinte forma: 67 30
31 Fila Representação Final Fila Circular iback deve comportar-se da seguinte forma: Para isto será utilizado o operador módulo (%) Módulo Retorna o resto da divisão inteira Exemplo: 5 % 5 = 0; 5 % MAXQUEUESIZE = 0 Neste caso o incremento de iback será da seguinte forma: iback = (iback + 1) % MAXQUEUESIZE O mesmo comportamento será associado também a ifront ifront= (ifront + 1) % MAXQUEUESIZE 68 Fila Representação Final Fila Circular Exemplo Sendo imaxqueuesize = 6; ifront= 1; iback= 5; Temos a seguinte situação Ao inserir um novo elemento (8) teremos: Desta forma iback e ifront vão variar de 0 a 5, podendo em seguida voltar a 0 Neste caso o vetor é preenchido de forma circular
32 Fila Circular Exemplo 70 Definição Fila.h C++ # ifndef QUEUE_CLASS # define QUEUE_CLASS # include <iostream> //Tamanho Máximo de Elementos na fila const int MAXQUEUESIZE = 32; template <class T> class Queue { private: //vetor com fila e atributos int ifront, iback, isize; T queuedata[maxqueuesize] ; public: //continua
33 Definição Fila.h C++ //Construtor Queue (void); //MODIFICAÇÃO (INSERÇÃO E REMOÇÃO) int push(const T& item); int push(const T& item); int pop(t& item); void removeall(void); //RECUPERAÇÃO DA INFORMAÇÃO T getfront(void) const; T getback(void) const; //MÉTODOS DE APOIO int getsize(void) id) const; int isempty(void) const; int isfull(void) const; ; # endif //QUEUE_CLASS 72 Fila Circular Implementação C++ (Fila.cpp) // inicializa as variáveis membro da fila ifront, iback, isize template <class T> Queue<T>::Queue (void) { ifront = 0; iback = 0; iback = 0; isize = 0; // Recupera o objeto que está no inicio da fila template <class T> T Queue<T>::getFront(void) const { return queuedata[ ifront] ; // Recupera o objeto que se encontra no final da fila template <class T> T Queue<T>::getBack(void) const { return queuedata[iback] ; 73 33
34 Fila Circular Implementação C++ (Fila.cpp) //Recupera o número de elementos na fila template <class T> int Queue<T>::getSize(void) const { return isize; //Insere um elemento na fila int template <class T> void Queue<T>::push (const T& item) { //Finaliza se a fila estiver cheia retorna 1, indicando erro if (isfull()){ return 1; // Incrementa isize isize++; //Coloca o elemento na ultima posicao queuedata[ iback] = item; //Atualiza iback, indicando a ultima posição disponível iback = (iback+1) % imaxqueuesize; 74 Fila Circular Implementação C++ (Fila.cpp) // Remove um elemento da fila e retorna seu valor no parâmetro int template <class T> T Queue<T>::pop(T& item) { // Retorna se a fila estiver vazia if (isempty()){ if (isempty()){ return 1; //Recupera o objeto que esta no inicio da fila e coloca em temp item = queuedata[ ifront] ; // Decrementa o tamanho da fila isize--; //Atualiza o inteiro que representa o inicio da fila, avançando //uma posição ifront = (ifront+1) % imaxqueuesize; //Retorna indicando sucesso return 0; 75 34
35 Fila Circular Implementação C++ (Fila.cpp) // Remove um elemento da fila e retorna seu valor no parâmetro int template <class T> T Queue<T>::pop(T& item) { // Retorna se a fila estiver vazia if (isempty()){ if (isempty()){ return 1; //Recupera o objeto que esta no inicio da fila e coloca em temp item = queuedata[ ifront] ; // Decrementa o tamanho da fila isize--; //Atualiza o inteiro que representa o inicio da fila, avançando //uma posição ifront = (ifront+1) % imaxqueuesize; //Retorna indicando sucesso return 0; 76 Fila Circular Implementação C++ (Fila.cpp) //Verifica que a fila está vazia template <class T> int Queue<T>::isEmpty(void) const { //A fila está vazia quando isize == 0 (número de objetos = 0) return isize == 0; return isize 0; //Verifica que a fila está cheia template <class T> int Queue<T>::isFull(void) const { //A fila está cheia quando isize == imaxqueuesize return isize == imaxqueuesize; //Remove todos os objetos da fila template <class T> void Queue<T>::removeAll(void) { isize = 0; ifront = 0; iback = 0; 77 35
Universidade Federal de Uberlândia Faculdade de Computação
Universidade Federal de Uberlândia Faculdade de Computação Prof. Flávio de Oliveira Silva, M.Sc. Março de 2010 2 Sumário Lista de Figuras... 4 1. Introdução... 5 2. Coleção de Dados... 5 2.1 Coleções Lineares...
Leia maisESTRUTURA DE DADOS FLÁVIO DE OLIVEIRA SILVA. Estrutura de Dados Flávio de Oliveira Silva 1
ESTRUTURA DE DADOS FLÁVIO DE OLIVEIRA SILVA flavio@autoenge.com.br flavio@facom.ufu.br Flávio de Oliveira Silva 1 OBJETIVOS DA DISCIPLINA Apresentar as estruturas de dados pilha, fila, listas e grafos.
Leia maisEstrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Trabalho Primeira Etapa Estruturas de Dados Estáticas
Estrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Trabalho Primeira Etapa Estruturas de Dados Estáticas Prof. Flávio de Oliveira Silva, M.Sc. A primeira parte do trabalho consiste em
Leia maisEstrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Trabalho Primeira Parte Estruturas de Dados Estáticas
Estrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Trabalho Primeira Parte Estruturas de Dados Estáticas Prof. Flávio de Oliveira Silva, M.Sc. A primeira parte do trabalho consiste em
Leia maisAula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler
Aula 7 e 8 Filas e suas Aplicações Prof. Leticia Winkler 1 Definição de Fila (Queue) São estruturas de dados do tipo FIFO (first-in first-out) - o primeiro elemento a ser inserido, será o primeiro a ser
Leia maisS U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas
ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados
Leia maisESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA
Leia maisCES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações
CES-11 Pilhas Definição Operações Filas Definição Operações Deques Definição Operações PILHAS, FILAS E DEQUES As listas lineares admitem inserção e eliminação em qualquer posição. Pilhas, filas e deques
Leia maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Leia maisREVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina
Leia maisListas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de
Leia maisAula 2 Listas Lineares Sequenciais. prof Leticia Winkler
Aula 2 Listas Lineares Sequenciais prof Leticia Winkler 1 Conteúdo Revisão de Vetor Definição Declaração Acesso dos Elementos Inicialização dos Elementos Exemplo Vetor e Função Lista Linear Operações com
Leia maisFilas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010
Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último
Leia maisOrientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Leia maisA regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
Leia maisAula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler
Aula 5 e 6 Pilhas e suas Aplicações prof Leticia Winkler 1 Definição de Pilha (Stack) São estruturas de dados do tipo LIFO (last-in first-out) - o último elemento a ser inserido, será o primeiro a ser
Leia maisPilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Leia maisFilas Implementação Sequencial
SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção
Leia maisFila. Algoritmos e Estruturas de Dados I
Fila Algoritmos e Estruturas de Dados I Fila O que é? Para que serve? 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem ser cadastrados O sistema deve informar se um livro está disponível
Leia mais4. Listas, Pilhas, e Filas
4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita
Leia mais4. Listas, Pilhas, e Filas
4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita
Leia maisFilas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,
Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Leia maisProva 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore
Leia maisCIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes
CIV 2802 Sistemas Gráficos para Engenharia 2011.1 4º Trabalho: Programação básica em C++: Classes Implementação de uma calculadora RPN (Reversed Polish Notation) Entrega: 05/abril/2011 Pede-se complementar
Leia maisPilhas. Profa Morganna Diniz
Pilhas Profa Morganna Diniz Pilhas Geralmente pilhas são úteis em situações em que dados devem ser recuperados em ordem inversa a do armazenamento É uma estrutura de dados linear que permite acesso por
Leia maisListas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de
Leia maisEstrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Pilhas e Filas Algoritmos e Estruturas de Dados 005/006 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisAlgoritmos e Estruturas de Dados 2007/2008
Pilhas e Filas Algoritmos e Estruturas de Dados 007/008 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:
Leia maisAula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler
Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisListas Lineares Ordenadas
Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre
Leia maisprogramas = estrutura de dados + algoritmos
Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 1. INTRODUÇÃO O mundo tem mudado rapidamente com ajuda dos computadores. Podemos citar as pesquisas espaciais, o projeto genoma, os simuladores de vôo,
Leia maisEstrutura de Dados: Aula 3 - Linguagem C
Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu
Leia maisEstruturas Compostas Parte II
Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida
Leia maisEstruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
Leia maisAula 11 Pilha Dinâmica. prof Leticia Winkler
Aula 11 Pilha Dinâmica prof Leticia Winkler 1 Pilha Dinâmica (Dynamic Stack) Pilha implementada através de uma lista linear encadeada. É uma lista linear encadeada em que as operações de inserção e retirada
Leia maisEstruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisLISTAS LINEARES. Estrutura de Dados
LISTAS LINEARES Lista Linear Definição: seqüência de zero ou mais elementos a 1,a 2,...,a n sendo a i elementos de um mesmo tipo n o tamanho da lista linear Propriedade fundamental: os elementos têm relações
Leia maisAlgoritmos e Estruturas de Dados
Pilhas e Filas Algoritmos e Estruturas de Dados 009/00 Obs: slides marcados com (*) não foram apresentados na aula teórica, mas são parte da bibliografia a estudar! Pilhas Pilha estrutura de dados linear
Leia maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande LISTA LIGADA (LINKED LIST) É uma estrutura de dados em que
Leia maisAula 14 Listas Duplamente Encadeadas. prof Leticia Winkler
Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois
Leia maisRevisão de TDA, Pilhas e Filas
Revisão de TDA, Pilhas e Filas Professor: Santiago Viertel dcc2sv@joinville.udesc.br Sumário Tipos de Dados Abstratos Pilhas Conceito Pilha Estática Filas Conceito Filas Estáticas (FEMR, FEMI e FEC) Tipos
Leia maisPilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode
Pilhas e Filas Pilhas Uma pilha é uma estrutura linear de dados que pode ser acessada somente por uma de suas extremidades. Uma pilha é uma lista LIFO (do inglês last-in-first out) o último a entrar é
Leia maisFICHA 8 PILHAS E FILAS
ESTRUTURAS DE DADOS E ALGORITMOS Departamento de Engenharia Eletrotécnica e de Computadores Faculdade de Ciências e Tecnologia da Universidade de Coimbra FICHA 8 PILHAS E FILAS 8.1. Objetivos Objetivos
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 27 de setembro de 2018 Marco Antonio
Leia maisEstruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 12 - Filas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisListas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1
Listas Lineares Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples
Leia maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA)
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA (ABORDAGEM RECURSIVA) Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande QUESTÕES DE IMPLEMENTAÇÃO Implementacao
Leia maisPilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Pilha SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Pilha O que é? Para que serve? 2 Problema: chamada de sub-rotinas Rotina A 1 print A 2 call C 3 call B 4 call D 5 return Rotina B 1 call
Leia maisAlgoritmos e Estruturas de Dados 2009/2010
Listas Algoritmos e Estruturas de Dados 2009/2010 Tipo de Dados Abstracto TDA conjunto de objectos + conjuntos de operações constituem uma abstracção matemática em C++ são implementados por classes; as
Leia maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 8 Aplicação de Fila Calcular a distância entre pessoas no Facebook Aplicação de Fila Calcular a distância entre
Leia maisUniversidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Estruturas de Dados
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Estruturas de Dados Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com
Leia maisO container vector funciona como um vetor comum, ou seja, os blocos de objetos estão contíguos, permitindo acesso aleatório.
Capítulo 29 class O container vector vai ser apresentado em detalhes. Os demais containers serão apresentados de uma forma simplificada, pois as suas características são semelhantes a vector.
Leia maisInstituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Filas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução
Leia mais16/11/2015 Lista Tipo de dado Lista - Implementação Lista - Implementação Lista - Implementação 3
Listas, pilhas e filas Profa. Vânia de Oliveira Neves Slides baseados no material da Profa. Graça Nunes Listas Lista Lista Uma Lista Linear é uma coleção ordenada de componentes de um mesmo tipo. Ela é
Leia maisEstruturas de dados e algoritmos fundamentais
Ministério da Ciência, Tecnologia e Ensino Superior U.C. 21046 Estruturas de dados e algoritmos fundamentais 21 de Junho de 2013 INSTRUÇÕES PARA A RESOLUÇÃO DO EXAME, ACONSELHA-SE QUE LEIA ATENTAMENTE
Leia maisHeaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisESTRUTURA DE DADOS (TCC )
ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Pilhas e Filas Cristina Boeres 2 Manipulando listas lineares! Dependendo do problema a ser resolvidos, existem duas formas especiais (que veremos aqui no
Leia maisInstituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Leia maisEAD PILHA - DEFINIÇÃO
EAD PILHA - DEFINIÇÃO Os seus elementos são processados pela ordem inversa à ordem de chegada: - o último elemento a entrar na Pilha é o primeiro a sair (LIFO Last In First Out ). Qualquer operação que
Leia mais08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?
Pilha SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Pilha O que é? Para que serve? 2 1 Rotina A 1 print A 2 call C 3 call B 4 call D Rotina B 1 call C 2 print B 3 call D 4 call C
Leia maisUniversidade Estadual Paulista Júlio de Mesquita Filho UNESP
Introdução à Computação II AULA 16 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) Estruturas de Dados
Leia maisPilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP
Pilhas Algoritmos e Estruturas de Dados I Nesta aula veremos o ADT pilha Uma pilha é usada em muitas situações tais como avaliação de expressões aritméticas, chamada e retorno de procedimentos e funções
Leia maisIntrodução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila
Introdução a Programação Tipos Abstratos de Dados Implementando Pilha e Fila Abstração Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno
Leia maisASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS
ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS INTRODUÇÃO O que é uma Estrutura de Dados (ED)?? Tipos de Dados? Estruturas de Dados e? Tipos Abstratos
Leia maisAlgoritmos e Estrutura de Dados Aula 08 Pilhas
Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação
Leia maisFila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Fila e Deque SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Pilhas e listas Estruturas de Dados 2 Ordenação (Classificação) Rearranjar um conjunto de objetos Ordem ascendente
Leia maisFila. Algoritmos e Estruturas de Dados I. Baseado no material de Thiago A. S. Pardo. Debora Medeiros
Fila Baseado no material de Thiago A. S. Pardo Algoritmos e Estruturas de Dados I Debora Medeiros Fila O que é? Para que serve? 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem
Leia maisTabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?
Tabelas Hash O Que é uma Tabela Hash? Nesta aula são discutidos modos de armazenar informações em um vetor, e depois procurar por uma informação Tabelas Hash constituem uma abordagem comum para o problema
Leia mais2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas 7. Pilhas 8.
Profa. Dra. Laura Rodríguez E-mail: lmrodrig@uma.pt Universidade da Madeira 1. Introdução 2. Listas 3. Listas ligadas simples 4. Operações dentro das listas 5. Listas Circulares 6. Listas Duplamente Ligadas
Leia maisAplicações de vetores
O TAD Vetor O TAD Vetor extende a noção de arranjo (array) armazenando sequências de objetos arbitrários Um elemento pode ser acessado, inserido ou removido através da especificação de sua colocação (rank)
Leia maisPilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Filas de prioridade Algoritmos e Estruturas de Dados 2005/2006 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisPCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados
PCS 3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 5: Encapsulamento e Tipo Abstrato de Dados Escola Politécnica da Universidade de São Paulo Agenda Questões Típicas
Leia maisAplicações de vetores
O TAD Vetor O TAD Vetor extende a noção de arranjo (array) armazenando sequências de objetos arbitrários Um elemento pode ser acessado, inserido ou removido através da especificação de sua colocação (rank)
Leia maisFila. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Fila SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Fila O que é? Para que serve? 2 Biblioteca Quais são as operações possíveis? Entrar na fila Quem entra, entra onde? Sair da fila Quem sai,
Leia maisListas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações
Listas - Outras Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações 5 e 7/10/2010 Listas Circulares Encadeadas Dinâmicas Se o nó next do último nó apontar para o primeiro, teremos
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura
Leia maisEstruturas de Dados. Túlio Toffolo BCC402 Aula 02 Algoritmos e Programação Avançada
Estruturas de Dados Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC402 Aula 02 Algoritmos e Programação Avançada Estruturas de dados elementares Arranjos (arrays) Pilhas (stacks) Filas (queues)
Leia maisProgramação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 20 Jan/2017.
Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 20 Jan/2017 4.9. Delegates Exercício 217 4.9. Delegates Repare nas diferenças destes dois casos com e sem Delegates:
Leia maisManipulação de Arquivos Binários
Introdução à Computação I Departamento de Física e Matemática FFCLRP-USP Prof. Dr. José Augusto Baranauskas IBm1006 1º Semestre/2006 Notas de Aula Manipulação de Arquivos Binários Até agora vimos como
Leia mais//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void
//conteúdo do arquivo Matriz.h class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso
Leia maisUniversidade Federal do Ma Curso de Ciência da Computação
Universidade Federal do Ma Curso de Ciência da Computação Estrutura de Dados Prof. Anselmo C. de Paiva Depto de Informática Limitações dos vetores Vetores Simples, Rápidos Mas, é necessário especificar
Leia maisListas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Leia mais1. Listas sequenciais versus listas ligadas. Lista sequencial
Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista
Leia maisFilas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1
Filas Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Aplicações Implementação / Modelagem Operações de uma fila TAD da Fila em C UDESC - Rui J. Tramontin Jr. 2 Introdução
Leia maisExame de Estruturas de Dados 2010.Junho.26
Exame de Estruturas de Dados 2010.Junho.26 Duração: 2:30 horas Valorização: 12 valores. 1. Responda às seguintes questões: a) Faça o estudo da complexidade do seguinte método: 1. void fun2(int n, int v[])
Leia maisInstituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A.
1 Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith Procedimento Insere_Esquerda (Lista,Valor) Aloque(Aux) Se (Aux = Nil) Senao Aux.Dado Valor
Leia mais3.2.2 Pilha (LIFO - last in, first out) - Inserção e remoção apenas no final da lista.
3. Estruturas Lineares (Listas Lineares) 3.1 Definição Uma lista linear é uma estrutura dinâmica caracterizada por uma seqüência ordenada, no sentido de sua posição relativa, de elementos (nós) L[1], L[2],,
Leia maisProva 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins
Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Os códigos fornecidos na seção Códigos-fonte de apoio podem ser referenciados
Leia mais