Facebook
From fifi, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 106
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct Element{
  5.     int key;
  6.     struct Element *next;
  7. }ListaJ;
  8.  
  9. ListaJ *wstawG(ListaJ *h,int k){
  10.     ListaJ *nowa=(ListaJ*)malloc(sizeof(ListaJ));
  11.     nowa->key=k;
  12.    // nowa->next=NULL;
  13.     nowa->next=h;
  14.     h=nowa;
  15.     return h;
  16. }
  17.  
  18. ListaJ *wstawO(ListaJ *h, int k){
  19.     ListaJ *nowa=(ListaJ*)malloc(sizeof(ListaJ));
  20.     nowa->key=k;
  21.     nowa->next=NULL;
  22.     if(h==NULL){
  23.         h=nowa;
  24.     } else{
  25.         ListaJ *walker;
  26.         walker=h;
  27.         while(walker->next!=NULL)
  28.             walker=walker->next;
  29.         walker->next=nowa;
  30.     }
  31.     return h;
  32. }
  33.  
  34. void pokaz(ListaJ *h){
  35.     if(h!=NULL){
  36.         ListaJ* walker=h;
  37.         while (walker!=NULL){
  38.             printf("%d,",walker->key);
  39.             walker=walker->next;
  40.         }
  41.     } else{
  42.         printf("lista pusta");
  43.     }
  44. }
  45. int szukaj(ListaJ *h,int k){
  46.     ListaJ *walker=h;
  47.     while ((walker!=NULL) && (walker->key!=k)){
  48.         walker=walker->next;
  49.     }
  50.     return walker;
  51. }
  52.  
  53. ListaJ *usunG(ListaJ *h){
  54.     ListaJ *tmp=h;
  55.     if(tmp!=NULL){
  56.         h=h->next;
  57.         free(tmp);
  58.         tmp=NULL;
  59.     }
  60.     return h;
  61. }
  62.  
  63.  
  64. ListaJ *usunO(ListaJ *h){
  65.     ListaJ *tmp=h;
  66.     if(tmp){
  67.         ListaJ *walker=h;
  68.         while (walker->next!=NULL){
  69.             tmp=walker;
  70.             walker=walker->next;
  71.         }
  72.         if(walker==tmp){
  73.             free(h);
  74.             h=NULL;
  75.         } else{
  76.             free(walker);
  77.             tmp->next=NULL;
  78.             walker=NULL;
  79.         }
  80.     }
  81.     return h;
  82. }
  83. int main() {
  84.     ListaJ *head=NULL;
  85.     head=wstawO(head,8);
  86.     head=wstawO(head,4);
  87.     head=wstawG(head,5);
  88.     head=wstawG(head,1);
  89.     pokaz(head);
  90.     ListaJ* p=szukaj(head,9);
  91.     if(p) printf("\nznaleziono");
  92.     else printf("\nnieznaleziono\n");
  93.     head=usunG(head);
  94.     pokaz(head);
  95.     printf("\n");
  96.     head=usunO(head);
  97.     pokaz(head);
  98.     return 0;
  99. }