-
Notifications
You must be signed in to change notification settings - Fork 0
/
PesquisaBinaria.c
108 lines (89 loc) · 1.88 KB
/
PesquisaBinaria.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*
Felipe Gouvêa, 92399
Algorítmo para busca sequencial dado uma entrada com N elementos
*/
#include <stdio.h>
#include <stdlib.h>
typedef int TChave;
typedef struct{
TChave Chave;
}TItem;
typedef struct SNo *TDicionario;
typedef struct SNo{
TItem Item;
TDicionario prox;
}TNo;
void inicializa(TDicionario *D){
// (*D)->Item = NULL;
(*D) = NULL;
}
TDicionario CriaItem(TItem novo){
TDicionario no = (TDicionario)malloc(sizeof(TNo));
no->Item = novo;
no->prox = NULL;
return no;
}
void InsereDicionario(TDicionario *D, TItem novo){
//printf("%d\n", novo.Chave);
if((*D) == NULL) {
(*D) = CriaItem(novo);
return;
}
if((*D)->Item.Chave < novo.Chave){
InsereDicionario(&(*D)->prox, novo);
}
else {
TDicionario aux = CriaItem(novo);
aux->prox = (*D);
(*D) = aux;
}
}
void RemoveDicionario(TDicionario *D, TItem novo){
if ((*D)->prox == NULL) (*D) = NULL;
else {
TDicionario aux;
aux = (*D);
(*D) = (*D)->prox;
free(aux);
}
}
void PesquisaDicionario(TDicionario D, TItem novo){
int i;
TDicionario aux = (D);
for ( i = 0; i < tamanho(D); i++){
aux = aux->prox;
}
}
void imprime (TDicionario D){
if(D == NULL) {
return;
} //printf("(C");
printf("%d ",D->Item.Chave);
imprime(D->prox);
//printf(")");
}
int tamanho(TDicionario D){
int tam = 0;
while (D != NULL){
D = D->prox;
tam++;
}
return tam;
}
int main()
{
TDicionario D;
//inicializa(&D);
TItem novo;
while (novo.Chave != -1){
//printf("Entre com o numero\n");
scanf("%d", &novo.Chave);
if(novo.Chave == -1)break;
InsereDicionario(&D, novo);
}
scanf("%d", &novo.Chave);
PesquisaDicionario(&D, novo);
imprime(D);
/// printf("%d", tamanho(D));
return 0;
}