Exercícios
- Os ficheiros
ORD.h
eORD.c
, fornecidos em anexo, constituem o ADT de uma estrutura de dados, que permite inserir ordenadamente elementos, através da funçãoORDinsert()
e obter o primeiro elemento (removendo-o), através da funçãoORDfirst()
. Analise os ficheiros em causa. O ficheiroteste.c
, fornecido em anexo, permite lêr da entrada um conjunto de números inteiros ou strings e escrevê-lo na saída de forma ordenada. -
- Implemente um ficheiro
Item.h
tal que, sem efectuar qualquer modificação nos ficheiros fornecidos, consiga efectuar a leitura da entrada de um conjunto de números inteiros e a escrita dos mesmos na saída de forma ordenada. Deverá compilar o seu programa com o seguinte comando:gcc -o teste teste.c ORD.c
- Repita o procedimento anterior, mas para manipular strings, em vez de números inteiros, considerando que a ordenação é efectuada pela função
strcmp()
.
- Implemente um ficheiro
- Os ficheiros
PQ.h
ePQ.c
, fornecidos em anexo, constituem o ADT fila de prioridade estudado nas aulas teóricas. Utilize este ADT para implementar um programa que lê um conjunto de palavras do standard input e as imprime no standard output por ordem crescente. Note que para utilizar o ADT terá de criar um ficheiroItem.h
que defina o tipoItem
e implemente as macrosless
eexch
. - Implemente um ADT de ordem 0, que permite guardar elementos e preserva a ordem de inserção dos elementos. A interface do ADT é constituída pelas seguintes funções:
-
void XYinit(int n)
, inicializa as estruturas de dados, possibilitando guardar atén
elementos; -
void XYinsert(Item e)
, insere um elementoe
; -
void XYdelete(int i)
, apaga o elemento de ordemi
; -
int XYcount()
, devolve o número de elementos; -
Item XYgetmax()
, devolve o maior elemento; -
Item XYgetmin()
, devolve o menor elemento; -
Item XYgetidx(int i)
, devolve o elemento de ordemi
;
-
- Transforme os ADTs dos exercícios anteriores em ADTs de primeira ordem.