Algoritmia
DEFINIR ESTRUTURA PARA DADOS E NO SEGUINTE typedef struct Dados *elemento; struct Dados
{
int num; char *nome;
};
typedef struct No * Ptr_No;
{
Ptr_No Ptr_Seg; elemento Ptr_Elem;
};
FUNÇAO CRIAR NO
Ptr_No Criar_No(int indice)
{
Ptr_No No; if((No=(Ptr_No) malloc(sizeof(struct No))) ==NULL) return NULL; if((No->Ptr_Elem=(elemento) malloc (sizeof(struct Dados)))
== NULL) free(No); return NULL;
}
No->Ptr_Elem->num = V_num[indice];
No->Ptr_Elem->nome = V_nome[indice];
No->Ptr_Seg = NULL; return No;
FUNÇAO INSERIR ELEMENTO NA LISTA
void InserirElemento(Ptr_No *Ptr, int indice)
{
Ptr_No NoInserir;
Ptr_No NoAnterior = NULL;
Ptr_No NoActual = *Ptr; if((NoInserir = Criar_No(indice)) == NULL) return; while(NoActual !=NULL && V_num[indice] > NoActual >Ptr_Elem ->num)
{
NoAnterior = NoActual;
NoActual = NoActual->Ptr_Seg;
}
Inserir elemento no inicio da lista if(NoAnterior == NULL)
{
NoInserir->Ptr_Seg = *Ptr;
*Ptr = NoInserir;
}
else
{
NoInserir->Ptr_Seg = NoActual;
NoAnterior->Ptr_Seg = NoInserir;
}
VER LISTA void VerLista(Ptr_No * Ptr)
{
Ptr_No NoActual = *Ptr; if(NoActual == NULL)
{
printf("Lista vazia"); return; } do { printf("Elemento %d \n\tNumero: %d\n\tNome: %s \n", i, NoActual->Ptr_Elem->num, NoActual->Ptr_Elem->nome); i++; NoActual = NoActual -> Ptr_Seg;
}
while( NoActual != NULL);
PESQUISAR ELEMENTO void pesquisarLista(Ptr_No *Ptr, int valor)
{
Ptr_No NoActual = *Ptr; int x = 1; do { if(NoActual->Ptr_Elem->num == valor)
{
printf("\nO valor encontrado e %d e esta na %d posicao\n", NoActual->Ptr_Elem->num, x); return; } else {
NoActual = NoActual->Ptr_Seg; x++; }
}
while(NoActual!= NULL); printf("\nValor nao encontrado\n");
}
PESQUISAR NOME void pesquisarNome(Ptr_No *Ptr, char *nome)
{
Ptr_No NoActual = *Ptr; int x = 1; do {