Advertisement
Guest User

Untitled

a guest
Aug 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct lista{
  5.     int valor;
  6.     struct lista *prox;
  7. }lista;
  8.  
  9.  
  10. int inserir(lista ** criaL, int valor){
  11.     //Insere um novo item na lista 
  12.         lista *novo, *aux, *aux2;
  13.        
  14.         novo = (lista*)malloc(sizeof(lista));
  15.         if(novo == NULL) exit(0);  
  16.        
  17.         novo->valor = valor;
  18.         novo->prox = NULL;
  19.        
  20.         if(*criaL == NULL){
  21.             *criaL = novo;
  22.         } else {
  23.             aux = *criaL;
  24.            
  25.             while (aux != NULL && aux->valor <= valor) {
  26.                 aux2 = aux;
  27.                 aux = aux->prox;
  28.             }
  29.            
  30.             // Inserir
  31.             aux2->prox = novo;
  32.             novo->prox = aux;
  33.         }
  34.        
  35.        
  36.     return 0;
  37. }
  38.  
  39. //int remove(){
  40.     //Remove um item da lista
  41.    
  42. //  return 0;
  43. //}
  44.  
  45. int imprimir(lista *L){
  46.     //Imprime todos os elementos da lista
  47.     lista *p;
  48.    
  49.     p = L;
  50.     while (p != NULL){
  51.         printf("%d\n", p->valor);
  52.         printf("\n");
  53.         p = p->prox;
  54.     }
  55.     return 1;
  56. }
  57.  
  58. //int liberar(){
  59.     //Libera todos os campos da lista para uma nova inserção
  60.    
  61. //  return 0;
  62. //}
  63.  
  64. int buscar(lista *L, int valor){
  65.     //anda na lista ligada
  66.     lista *p;
  67.    
  68.     p = L;
  69.     while (p != NULL){
  70.         if (p->valor == valor){
  71.             return 0;
  72.         }
  73.         p = p->prox;
  74.     }
  75.     return 1;
  76. }
  77.  
  78. //lista * criaLista(){
  79.     //Cria a lista e aloca a memória
  80. //  lista *tam, *aux;
  81.    
  82. //  tam = (lista *) malloc(sizeof(lista)); //Aloca a memória da célula
  83. //  if(novo == NULL) exit(0);  //Se não alocar memória significa que não há memoria disponível
  84. //  tam->prox = NULL; //Seta NULL para a primeira célula
  85. //  aux = tam;        //aux tem que retornar com a célula vazia
  86.    
  87. //  return (aux);
  88.    
  89. //}
  90.  
  91. int main(int argc, char** argv) {
  92.     lista *criaL;
  93.     criaL = NULL;
  94.     // criaL = criaLista(); //cria a lista vazia   
  95.    
  96.     inserir(&criaL, 3);
  97.     //inserir(&criaL, 1);
  98.     inserir(&criaL, 8);
  99.     //inserir(&criaL, 4);
  100.     //inserir(&criaL, 2);
  101.    
  102.     imprimir(criaL);
  103.                    
  104.     return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement