-
Notifications
You must be signed in to change notification settings - Fork 0
/
linear_list.c
77 lines (54 loc) · 1.24 KB
/
linear_list.c
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
76
77
#include <stdio.h>
#include <stdbool.h>
#define MAX 50
typedef unsigned int u_int;
typedef struct {
u_int chave;
} REGISTRO;
typedef struct {
REGISTRO A[MAX];
int NElemento;
} LISTA;
void inicializarLista(LISTA* l) {
l->NElemento = 0;
}
void exibirLista(LISTA* l) {
printf("Lista: \" ");
for(int i = 0; i < l->NElemento; i++)
printf("%i", l->A[i].chave);
}
int buscaSequencial(LISTA* l, u_int ch) {
int i = 0;
while(i < l->NElemento) {
if(ch == l->A[i].chave) return i;
else i++;
}
return -1;
}
bool inserirElemento(LISTA* l, REGISTRO reg, int i) {
int j;
if((l->NElemento == MAX) || (i < 0) || (i > l->NElemento)) return false;
for(j = l->NElemento; j > i; j--) l->A[j] = l->A[j - 1];
l->A[i] = reg;
l->NElemento++;
return true;
}
int size(LISTA* l) {
return l->NElemento;
}
bool excluirElemento(u_int ch, LISTA* l) {
int pos, j;
pos = buscaSequencial(l, ch);
if(pos == -1) return false;
for(j = pos; j < l->NElemento - 1; j++)
l->A[j] = l->A[j+1];
l->NElemento--;
return true;
}
void reiniciarLista(LISTA* l) {
l->NElemento = 0;
}
int main(int argc, char *argv[]) {
LISTA* lista;
return 0;
}