Fandom

Students

LAPIS/Disciplinas/Estruturas de Dados:Fila

< LAPIS | Disciplinas

1,331pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Filas Edit

Fec

Fila Estática Circular

  • Enunciado
Implementação do TDA Fila Estática Circular (FEC) e aplicação.


  • Objetivo
Desenvolvimento de um TDA estático com reaproveitamento eficiente do vetor.


  • Implementação
Implementar todas as operações do TDA FEC e criar uma pequena aplicação de teste.


  • TDA FEC - privado
typedef struct FEC {
      int tamVet;   /* tamanho do vetor                       */
      int tamInfo;  /* tamanho, em bytes, do elemento         */
      int quant;    /* quantidade de elementos inseridos      */
      int inicio;   /* posição do elemento do início da fila  */
      int fim;      /* posição do elemento do fim    da fila  */
      void **vet;   /* vetor de ponteiros void para elementos */
} FEC;


  • TDA FEC - interface
int  criaFEC(ppFEC pp, int  tamVet, int tamInfo);
void destroiFEC(ppFEC pp);
int  reiniciaFEC(pFEC p);
int  testaVaziaFEC(pFEC p);
int  testaCheiaFEC(pFEC p);
int  buscaNaFrenteFEC(pFEC p, void *destino);
int  removeFEC(pFEC p);
int  insereFEC(pFEC p, void *novo);


  • Aplicação

Implementação de um buffer para leitura de um arquivo texto (.txt) de forma a disponibilizá-lo o mais rápido possível a outras aplicações e, além disto, exibi-lo na tela pausadamente a cada 50 caracteres. Segue o algoritmo:

  1. Abrir o arquivo
  2. Inserir todo seu conteúdo em um fila
  3. Fechar o arquivo (disponibilização)
  4. Mostrar na tela os primeiros 50 caracteres e uma mudança de linha
  5. Esperar 5 segundos (sleep(5);) para que o usuário possa ler o conteúdo
  6. Voltar ao passo 4 (até que o buffer, ou seja, a fila se torne vazia)


  • Dicas
1. Leitura de arquivo
FILE *arq;
char A;
arq = fopen("c:/.../.../nome_do_arquivo.txt", "r");
if (arq == NULL) {
      printf("erro!\n");
      return 0;
}
while ( ! feof(arq) ) {
      A = fgetc(arq);
}
fclose(arq);
2. Cálculo do tamanho do arquivo
#include <sys/stat.h>  //contém estrutura "struct stat" e função "stat"
struct stat atributos;
int tamanho;
if (stat("c:/.../.../nome_do_arquivo.txt", &atributos) == 0)
      tamanho = atributos.st_size;
else {
      printf("erro!\n");
      return 0;
}

Also on Fandom

Random Wiki