Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Estrutura de Dados I: Fila Encadeada com Cabeça, Notas de estudo de Engenharia Telemática

Neste documento, aprenda a implementar uma fila encadeada com cabeça em c. A fila encadeada é uma estrutura de dados simples, composta por um conjunto de elementos (nós) interconectados, onde cada nó armazena um dado e um ponteiro para o próximo nó. A cabeça da fila é representada por um ponteiro que aponta para o primeiro nó da fila. O documento aborda as operações básicas de uma fila encadeada: criar, verificar se está vazia, obter o elemento que está na frente da fila, enfileirar e desenfileirar elementos.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1











 !






"#$
#%&'
()()*+,,
()-
 !
.#$
.$&'
&))*+,,//))*+,,'
"#$%#&
%0 
%&1#'
&.$&''
-
#)&'(
2
##

&1#'
#
&&#)&''))*+,,'
-
#()#
#()*+,,
&.$&''
()#

&('()#
()#
&('33
2
pf2

Pré-visualização parcial do texto

Baixe Estrutura de Dados I: Fila Encadeada com Cabeça e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

Disciplina: Estrutura de Dados | Professor: Alex Sandro C. Rego FILA ENCADEADA COM CABEÇA Definição da Estrutura de Dados do tipo FILA ENCADEADA COM CABEÇA finclude h> estrutura do no da fila stnofila ( // campo de informacao struct stnofila “prox; // campo do ponteiro para o proximo no Ino; // Estrutura “cabeca” da fila typedef struct tfila ( no* inicio; no* final; int tamanho; kfilaz Criar fila /* Criando uma fila vazia */ void criaFila(fila *£) « f->inicio = f->final f->tamanho = 0; NULL; Verificar se a fila está vazia /* Verificar se a fila esta vazia */ int filaVazia(fila £) return (f.inicio == NULL && f.final == NULL); ) Obter o elemento que está na frente da fila, sem retira-lo /* Funcao que obtem o primeiro elemento da fila */ int elementoDaFrente (fila £, int *valor) ( if (filavazia(f)) return 0; (f. inicio) ->dado; *valor return 1; Enfileirar um elemento /* inserir um elemento na fila */ int enfileira( fila *f, int valor) « no* novo; if ( (novo = aloca() ) == NULL) return O; novo->dado = valor; novo->prox = NULL; 1if( filavazia(*£) ) f->inicio = novo; else (f->final)->prox = novo; f->final = novo; (£->tamanho) ++; return 1; Alocando um no dinamicamente no* aloca(void) return ( (no*) malloc(sizeof(no))); ) Desenfileirar um elemento da fila /* Remover um elemento da fila */ int desenfileira(fila *f, int *valor) « no* aux; if( filavazia(*f) ) return 0; elementoDaFrente( *f, valor); /* Teste para verificar se a fila contem apenas um elemento: if (f->inicio f->final) f->final NULL; aux = f->inicio; f->inicio = (f->início)->prox; free (aux); (f->tamanho) -—; return 1; caso especial */ Imprimir os elementos da fila // Imprime todos os elementos da fila void imprime (fila £) « if(filavazia(f)) VAZIA; else ( no* aux; printí(Mo [9 for( ; f.início != NULL; f.início = (f.início)->prox) printf ("sd ", (£f. início) ->dado) ; ) printí("] a"); ) obtendo o tamanho da fila /* Obter o tamanho da fila */ int tamanho(fila £) « return(f. tamanho) ; ; Imprimindo os enderecos de memoria //Exercicio adicional void imprimeEndereco (fila £) « if(filavazia(f)) VAZIA; else ( no* aux; printí(Mo [9 for( ; f.início != NULL; f.inicio printf ("sp ",f.início); (f. início) ->prox) ( ) printí("] a");