-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlista.h
75 lines (61 loc) · 2.29 KB
/
lista.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#ifndef LISTA_H_
#define LISTA_H_
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*TipoItem Aluno (tipo opaco)
Estrutura interna do tipo deve ser definida na implementação do TAD. Devem ser definidos campos:
- nome (string)
- matricula (int)
- endereco (string)
*/
typedef struct tipoitem TipoItem;
/*Tipo que define a lista (tipo opaco)
Estrutura interna do tipo deve ser definida na implementação do TAD.
Usar lista COM Sentinela
*/
typedef struct tipolista TipoLista;
/*Inicializa o sentinela de uma lista
* inputs: nenhum
* output: Sentinela inicializado
* pre-condicao: nenhuma
* pos-condicao: sentinela da lista de retorno existe e os campos primeiro e ultimo apontam para NULL
*/
TipoLista* InicializaLista();
/*Insere um aluno na primeira posição da lista de alunos
* inputs: aluno a ser inserido na lista (do tipo TipoItem) e a lista
* output: nenhum
* pre-condicao: aluno e lista não são nulos
* pos-condicao: lista contém o aluno inserido na primeira posição
*/
void Insere (TipoItem* aluno, TipoLista* lista);
/*Retira um aluno de matrícula mat da lista de alunos
* inputs: a lista e a matrícula do aluno a ser retirado da lista
* output: o aluno (do tipo TipoItem) retirado da lista ou NULL, se o aluno não se encontrar na lista
* pre-condicao: lista não é nula
* pos-condicao: lista não contém o aluno de matrícula mat
*/
TipoItem* Retira (TipoLista* lista, int mat);
/*Imprime os dados de todos os alunos da lista
* inputs: a lista de alunos
* output: nenhum
* pre-condicao: lista não é nula
* pos-condicao: dados dos alunos impressos na saida padrao
*/
void Imprime (TipoLista* lista);
/*Libera toda a memória alocada para a lista (lembre-se de tambem liberar a memoria para o aluno)
* inputs: a lista encadeada de alunos
* output: Lista vazia (NULL)
* pre-condicao: lista não é nula
* pos-condicao: memória alocada é liberada
*/
TipoLista* Libera (TipoLista* lista);
/*Inicializa um TipoItem aluno
* inputs: o nome, a matricula e o endereco do aluno
* output: um ponteiro para o tipo item criado
* pre-condicao: nome, matricula e endereco validos
* pos-condicao: tipo item criado, com os campos nome, matricula e endereco copiados
*/
TipoItem* InicializaTipoItem(char* nome, int matricula, char* endereco);
void LiberaAluno (TipoItem* aluno);
#endif /* LISTA_H_ */