Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
// AjudaBerg.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> //Estrutura do cliente typedef struct Cliente { int id; char nome[70]; float saldo; struct Cliente * prx; struct Cliente * ant; } cliente; //Variavel global com tamanho da lista int len = 0; //Referencia sempre o primeiro item da lista cliente * priCliente = NULL; cliente * ultCliente = NULL; //Cria um novo cliente cliente * criaCliente(int id, char nome[70], float saldo) { cliente * newCliente = (cliente *)malloc(sizeof(cliente)); if (newCliente == NULL) { printf_s("\n Falha na criacao de nodo \n"); return NULL; } newCliente->id = id; strcpy_s(newCliente->nome, nome); newCliente->saldo = saldo; newCliente->prx = NULL; newCliente->ant = ultCliente; return newCliente; } //Insere no final cliente * insere(cliente * newCliente) { if (!len) { //printf_s("Adicionado no primeiro"); priCliente = newCliente; ultCliente = newCliente; } else { //printf_s("Adicionado no ultimo"); ultCliente->prx = newCliente; ultCliente->ant = ultCliente->ant; ultCliente = newCliente; } len++; return newCliente; } //Deleta registro por id //void remove(int id) { // cliente * auxCliente = priCliente; // // while (auxCliente != NULL) { // if (auxCliente->id == id) { // auxCliente->ant->prx = auxCliente->prx; // free(auxCliente); // } // } // // //} //Deleta registro por nome void removeNome(char nome[70]) { cliente * auxCliente = priCliente; while (auxCliente != NULL) { if (!strcmp(auxCliente->nome, nome)) { auxCliente->ant = auxCliente->prx; //free(auxCliente); return; } auxCliente = auxCliente->prx; } } void mostra() { cliente * auxCliente = priCliente; while (auxCliente != NULL) { printf_s("id: %d \n", auxCliente->id); printf_s("Nome: %s \n", auxCliente->nome); printf_s("Saldo: %.2f \n", auxCliente->saldo); printf_s("anterior: %s \n", auxCliente->ant->nome); printf_s("proximo: %s \n", auxCliente->prx->nome); printf_s("------------------------------------------\n"); auxCliente = auxCliente->prx; } } int main() { insere(criaCliente(1, "Wesley", -10)); insere(criaCliente(2, "Cayo", 100)); mostra(); system("cls"); insere(criaCliente(3, "Berg", 200)); insere(criaCliente(4, "Fernando", 300)); mostra(); removeNome("Cayo"); system("pause"); system("cls"); mostra(); //remove(3); //mostra(); system("pause"); return 0; }
Compartilhar