Advertisement
Guest User

Untitled

a guest
May 25th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.95 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 50 //TAMANHO DO VETOR DE 50 POSIÇÕES
  4.  
  5. typedef struct { // STRUCT PARA A INSERÇÃO DE DADOS NA LISTA
  6.     char nome[MAX]; // NOME DO TIPO (CHAR) DE 50 CARACTÉRES // [MAX] IGUAL A DEFINIÇÃO DE TAMNHO 50
  7.     int idade, id; // IDADE / ID AUTO_INCREMENT (INT)
  8. }usuario; // APELIDO "usuario" PARA A STRUCT PESSOA
  9.  
  10. typedef struct NODO{ //CRIAÇÃO DE PONTEIROS PARA APONTAR OS NÓS DA LISTA DUPLAMENTE ENCADEADA
  11.     usuario *dados; //DADOS DO ELEMENTO QUE SERÁ CADASTRADO NO NÓ
  12.     struct NODO *proximo; //Próximo elemento do NÓ
  13.     struct NODO *anterior; // Elemento anterior do NÓ
  14. };
  15.  
  16. typedef struct{ //CRIAÇÃO DA STRUCT PARA APONTAR O INÍCIO DE UM NOVO ELEMENTO
  17.     struct NODO *inicio //Ponteiro apontando para a nova alocação do nó
  18. }List; //apelido "List" para a lista duplamente encadeada em conjunto com a *NODO*
  19.  
  20. void init(List *L){ //INICIAÇÃO DA LISTA
  21.     L->inicio = NULL; //SE O INÍCIO DA LISTA ESTIVER NULL ENTAÕ INICIAMOS A LISTA
  22. }
  23.  
  24. int empty(List *L) { //CHECAR SE A LISTA ESTÁ VAZIA
  25.     if (L->inicio == NULL) // SE O INÍCIO DA LISTA ESTIVER = "NULL" a lista está vazia.
  26.         return 1; //LISTA VAZIA
  27.     else // CASO A CONDIÇÃO SEJA FALSA EXISTE ELEMENTO NA LISTA
  28.         return 0; //LISTA COM ELEMENTOS
  29. }
  30.  
  31. void insert(List *L, usuario *p){//ponteiro *L = struct lista, ponteiro *p = struct usuario;
  32.     struct NODO *no = (struct NODO*) malloc(sizeof(struct NODO));
  33.         if(L->inicio == NULL){
  34.             L->inicio->anterior = no;
  35.         }
  36.     no->dados = p;
  37.     no->proximo = L->inicio;
  38.     no->anterior = NULL;
  39.     L->inicio = no;
  40. }
  41.  
  42. void imprimir(List *L){
  43.    struct NODO *imprimi = L->inicio;
  44.     while(imprimi!=NULL){
  45.         printf("ID: %d | NOME: %c | IDADE: %d\n",imprimi->dados->id,imprimi->dados->nome,imprimi->dados->idade);
  46.         imprimi=imprimi->proximo;
  47.     }
  48. }
  49.  
  50.  
  51.  
  52. main(){
  53.     int ctrl,c=0;
  54.     struct List *L;
  55.     struct NODO *guardar;
  56.     guardar->dados;
  57.     usuario p;
  58.    
  59.     do{
  60.        
  61.         system("CLS");
  62.         printf(
  63.         "Selecione opcao que deseja, veja nosso menu:|\n"
  64.         "---------------------------------------------\n"
  65.         "1 - Criar Lista      |\n"                                
  66.         "2 - Mostrar Lista    |\n"
  67.         "3 - Inserir Usuario  |\n"
  68.         "4 - Deletar Usuario  |\n"
  69.         "5 - Ordenar Idades   |\n"
  70.         "---------------------\n"
  71.         "0 - SAIR DO PROGRAMA.|\n"
  72.         "---------------------\n"
  73.    
  74.         );
  75.        
  76.         scanf("%d", &ctrl);
  77.         switch (ctrl)
  78.         {
  79.  
  80.             case 0:
  81.                 printf("Fim da Lista");
  82.                 getch();
  83.             break;
  84.             case 1:
  85.                 system("CLS");
  86.                 init(&L);
  87.                 printf("          \n\nLISTA CRIADA\n\n Pressione uma tecla para voltar ao menu.");
  88.                 getch();
  89.             break;
  90.             case 3:
  91.                 c++;
  92.                
  93.                 insert(&guardar,&p);
  94.            
  95.             break;
  96.             }
  97.        }while(ctrl != 0);
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement