Orkut em c , estrutura dados

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (899 palavras )
  • Download(s) : 0
  • Publicado : 3 de julho de 2012
Ler documento completo
Amostra do texto
#include
#include
#include

#define TAM_NOME 10

typedef struct ListaUm {
int codigo;
struct ListaUm *anterior;
struct ListaUm *proximo;
} ListaUm;

typedef struct ListaDois{
intcodigo;
char nome[TAM_NOME];
struct ListaDois *anterior;
struct ListaDois *proximo;
ListaUm *amigos;
} ListaDois;

ListaDois* l;

ListaDois * lista_cria() {
return NULL;
}

voidlista_insere(char dado[TAM_NOME]) {

ListaDois *novo= (ListaDois*) malloc (sizeof(ListaDois));
strcpy(novo->nome, dado);
novo->proximo = l;
novo->anterior = NULL;
novo->amigos = NULL;

if(l!= NULL) {l->anterior = novo;
novo->codigo = l->codigo+1;
} else
novo->codigo = 0;

l = novo;
}

ListaDois* lista_busca_por_nome(char nome[TAM_NOME]) {
ListaDois *a;
for(a=l; a!=NULL; a = a->proximo) {if(strcmp(a->nome, nome) == 0)
return a;
}
return NULL;
}
ListaDois* lista_busca_por_codigo(ListaDois* l,int id){
ListaDois *aux = l;
while(aux != NULL){

if(aux->codigo == id){
return aux;}
aux = aux->proximo;
}
return NULL;
}

int saoAmigos(ListaDois *pessoa1, ListaDois *pessoa2){

ListaUm *amigo = pessoa1->amigos;
while(amigo!= NULL){
if(amigo->codigo == pessoa2->codigo){return 1;
}
amigo = amigo->proximo;
}
return 0;
}

void lista_exibe(ListaDois* l) {

ListaDois *aux;

printf("..............................\n");
printf("Cod\t Nome\t Amigos\n");printf("..............................\n");

for(aux=l; aux!=NULL; aux = aux->proximo) {
printf("\n");
printf("%d\t ", aux->codigo);
printf("%s\t ", aux->nome);
if(aux->amigos != NULL){
intcontamigos = 1;
ListaUm * auxl1 = aux->amigos;
for(;auxl1->proximo!= NULL;auxl1 = auxl1->proximo ) {
contamigos = contamigos + 1;
}
printf("%d\t", contamigos);
}else {
printf("Sem Amigos");
}
}
}int cadastra(char nome[TAM_NOME]) {

ListaDois* n = lista_busca_por_nome(nome);

if (n)
return -1;
else
lista_insere(nome);
return 0;

}

int validaUsuario(ListaDois* usuario, int...
tracking img