-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.c
81 lines (76 loc) · 2.01 KB
/
main.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
78
79
80
81
//main.c
#include "Lista.h"
#include <stdio.h>
void mostra_float(void *p){
printf("%.1f\n", *(float *)p);
}
int compara_float(void *a, void *b){
float *x = a, *y = b; //Pode ser feito cast aqui, assim como na função 'mostra_float'
if(*x > *y)
return 1; // A > B
if(*x < *y)
return -1; // A < B
return 0; // A == B
/*The 'compara_float' function is implemented here because it's
the application's problem, not the library's problem.*/
}
int main(){
Lista l1;
inicializa_lista(&l1, sizeof(float));
float x=1,y=0;
insereNoInicio(&l1,&x);
printf("\nnumero 1 inserido no inicio\n");
x=4.5;
printf("\nnumero 4.5 inserido no inicio\n");
insereNoInicio(&l1,&x);
x=3;
printf("\nnumero 3.0 inserido no inicio\n");
insereNoInicio(&l1,&x);
mostra_lista(l1,mostra_float);
removeDoInicio(&l1,&y);
printf("\nnumero 3 removido do inicio:\n");
printf("%.1f\n",y);
printf("\nlista atual:\n");
mostra_lista(l1,mostra_float);
x=3;
insereNoFim(&l1,&x);
printf("\ninseriu 3 no fim\n");
x=6;
insereNoFim(&l1,&x);
printf("\ninseriu 6 no fim\n");
printf("\nitens da lista:\n");
mostra_lista(l1,mostra_float);
printf("\n\n");
removeDoFim(&l1,&y);
printf("\nremoveu do fim:\n%f \n\n",y);
printf("\nlista atual:\n");
mostra_lista(l1,mostra_float);
printf("\n\nInserido na posição 3:\n");
x=7;
insereNaPos(&l1, &x, 3);
mostra_lista(l1,mostra_float);
printf("\n\nInseridos na posição 3:\n");
x=4.7;
insereNaPos(&l1, &x, 3);
x=5.1;
insereNaPos(&l1, &x, 3);
mostra_lista(l1,mostra_float);
removeDaPos(&l1, &x, 1);
printf("\nRemovida na posicao 1: %.1f\n", x);
mostra_lista(l1,mostra_float);
leNaPos(&l1, &y, 3);
printf("\n\nLeitura na posicao 3: %.1f\n", y);
//x=5.1;
//int pos = busca(Lista l1, &x, compara_float){
// printf("\n\nPosicao do valor 5.1: %d\n", count);
x=11;
scanf("%f",&x);
while(x!=0){
insereEmOrdem(&l1, &x, compara_float);
mostra_lista(l1,mostra_float);
scanf("%f", &x);
}
desaloca_lista(&l1);
printf("\n\n\n NAO SE ESQUECAM GALERA,\n PROVA 3 ESTA CHEGANDO \n NO DIA 06/06\n");
return 0;
}