Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct Banco{
- int numero_conta;
- char nome_cliente[30];
- float saldo;
- struct Banco *atras;
- struct Banco *agora;
- struct Banco *prox;
- struct Banco *ant;
- };
- typedef struct Banco node;
- void inicia(node *LISTA);
- int menu(void);
- void opcao(node *LISTA, int op);
- node *criaNo();
- void insereFim(node *LISTA);
- void insereInicio(node *LISTA);
- void exibe(node *LISTA);
- void libera(node *LISTA);
- void excluir (node *LISTA);
- int main(void)
- {
- node *LISTA = (node *) malloc(sizeof(node));
- if(!LISTA){
- printf("Sem memoria disponivel!n");
- exit(1);
- }
- inicia(LISTA);
- int opt;
- do{
- opt=menu();
- opcao(LISTA,opt);
- }while(opt);
- free(LISTA);
- return 0;
- }
- void inicia(node *LISTA)
- {
- LISTA->prox = NULL;
- }
- int menu(void)
- {
- int opt;
- printf("Escolha a opcaon");
- printf("0. Sairn");
- printf("1. Exibir listan");
- printf("2. Adicionar cliente no inicion");
- printf("3. Adicionar cliente no finaln");
- printf("4. Zerar listan");
- printf("5. Excluir cliente especificon");
- printf("Opcao: "); scanf("%d", &opt);
- return opt;
- }
- void opcao(node *LISTA, int op)
- {
- switch(op){
- case 0:
- libera(LISTA);
- break;
- case 1:
- exibe(LISTA);
- break;
- case 2:
- insereInicio(LISTA);
- break;
- case 3:
- insereFim(LISTA);
- break;
- case 4:
- inicia(LISTA);
- break;
- default:
- printf("Comando invalidonn");
- }
- }
- int vazia(node *LISTA)
- {
- if(LISTA->prox == NULL)
- return 1;
- else
- return 0;
- }
- void insereFim(node *LISTA)
- {
- node *novo=(node *) malloc(sizeof(node));
- if(!novo){
- printf("Sem memoria disponivel!n");
- exit(1);
- }
- //Comeco ediчуo do professor
- printf("Numero conta: "); scanf("%d", &novo->numero_conta);
- printf("Nome: "); scanf("%s", novo->nome_cliente);
- printf("Saldo: "); scanf("%f", &novo->saldo);
- novo->prox = NULL;
- //Fim da ediчуo do professor
- if(vazia(LISTA))
- LISTA->prox=novo;
- else{
- node *tmp = LISTA->prox;
- while(tmp->prox != NULL)
- tmp = tmp->prox;
- tmp->prox = novo;
- }
- }
- void insereInicio(node *LISTA)
- {
- node *novo=(node *) malloc(sizeof(node));
- if(!novo){
- printf("Sem memoria disponivel!n");
- exit(1);
- }
- printf("Numero conta: "); scanf("%d", &novo->numero_conta);
- printf("Nome: "); scanf("%s", novo->nome_cliente);
- printf("Saldo: "); scanf("%f", &novo->saldo);
- node *oldHead = LISTA->prox;
- LISTA->prox = novo;
- novo->prox = oldHead;
- }
- void exibe(node *LISTA)
- {
- if(vazia(LISTA)){
- printf("Lista vazia!nn");
- return ;
- }
- node *tmp;
- tmp = LISTA->prox;
- //Edicao do professor ("%d %s %fn", tmp->numero_conta, tmp->nome_cliente, tmp->saldo)
- while( tmp != NULL){
- printf("n");
- printf("Numero conta: %dn", tmp->numero_conta);
- printf("Nome: %sn", tmp->nome_cliente);
- printf("Saldo: %fn", tmp->saldo);
- printf("n");
- tmp = tmp->prox;
- }
- printf("nn");
- }
- void libera(node *LISTA)
- {
- if(!vazia(LISTA)){
- node *proxNode,
- *atual;
- atual = LISTA->prox;
- while(atual != NULL){
- proxNode = atual->prox;
- free(atual);
- atual = proxNode;
- }
- }
- }
- case 5:
- excluir(LISTA);
- break;
- undefined reference to `excluir'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement