Apostila processo penal
#include
#include
#include
typedef struct{ int cod; char nome[50]; int idade;
}TPessoa;
typedef struct cx{ TPessoa elem; struct cx *prox;
}Caixa;
typedef Caixa *ponteiro;
typedef struct{ ponteiro prim, ult; int cont;
}ListaEncDinamica;
void criarListaVazia(ListaEncDinamica *L); int verificaListaVazia(ListaEncDinamica L); void insereElementoLista(ListaEncDinamica *L , TPessoa X); void imprimeLista(ListaEncDinamica L); void pesquisaCliente(ListaEncDinamica L , int codigo); int MENU();
TPessoa coletaDados(); void removeElementoLista(ListaEncDinamica *L , TPessoa *X);
TPessoa coletaDadosRemocaoEBusca();
int main(){ TPessoa cliente; ListaEncDinamica lista; criarListaVazia(&lista); int opcao; do{ opcao = MENU(); if (opcao == 1){ cliente = coletaDados(); insereElementoLista(&lista , cliente); } else if (opcao == 2){ cliente = coletaDadosRemocaoEBusca(); removeElementoLista(&lista,&cliente); } else if (opcao == 3){ imprimeLista(lista); } else if (opcao == 4){ cliente = coletaDadosRemocaoEBusca(); pesquisaCliente(lista , cliente.cod); } system("pause"); system("cls"); }while (opcao != 0); return 0;
}
// CRIA UMA LISTA ENCADEADA DINAMICA VAZIA void criarListaVazia(ListaEncDinamica *L){ ponteiro p = (ponteiro)malloc(sizeof(Caixa)); L->prim = p; p->prox = NULL; p->elem.cod=0; L->cont=0;
}
// VERIFICA SE A LISTA ESTÁ VAZIA OU NÃO - (se for verdadeiro a condição, então a lista está vazia) int verificaListaVazia(ListaEncDinamica L){ return (L.prim==L.ult);
}
// INSERE ELEMENTOS NA LISTA void insereElementoLista(ListaEncDinamica *L , TPessoa X){ ponteiro p; p=(ponteiro)malloc(sizeof(Caixa)); p->elem = X;