-
Notifications
You must be signed in to change notification settings - Fork 0
/
ListaEncadeada.c
47 lines (44 loc) · 1.17 KB
/
ListaEncadeada.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
#include "ListaEncadeada.h"
char* Ordenacao_Word(unsigned char* v, int tam){
char aux;
int i, j;
unsigned char* v2 = (char*) malloc(tam+1*sizeof(char));
strcpy(v2,v);
for(i = 0; i < tam; i++){
for(j = i+1 ; j < tam; j++){
if(v2[i] > v2[j]){
aux = v2[j];
v2[j] = v2[i];
v2[i] = aux;
}
}
}
return v2;
}
void inserirLista(Lista* v, char* palavra, int tam){
NOH* vetor = (NOH*) calloc(1,sizeof(NOH));
char* palavra2 = (char*) malloc(tam+1*sizeof(char));
strcpy(palavra2, palavra);
vetor->Palavra = palavra2;
vetor->PalavraOrd = Ordenacao_Word(palavra,tam);
vetor->prox = NULL;
if(v->Primeiro == NULL){
v->Primeiro = v->Ultimo = vetor;
}else{
v->Ultimo->prox = vetor;
v->Ultimo = vetor;
}
}
void BuscaLista(Lista* v, char* palavra){
NOH* i = v->Primeiro;
int cont = 0;
while(i != NULL){
if(strcmp(i->PalavraOrd, palavra) == 0 ){
printf("%s\n", i->Palavra);
cont++;
}
i = i->prox;
}
if(cont > 0) return;
printf("Esta palavra não foi encontrada\n");
}