#include #include typedef struct Element{ int key; struct Element *next; }ListaJ; ListaJ *wstawG(ListaJ *h,int k){ ListaJ *nowa=(ListaJ*)malloc(sizeof(ListaJ)); nowa->key=k; // nowa->next=NULL; nowa->next=h; h=nowa; return h; } ListaJ *wstawO(ListaJ *h, int k){ ListaJ *nowa=(ListaJ*)malloc(sizeof(ListaJ)); nowa->key=k; nowa->next=NULL; if(h==NULL){ h=nowa; } else{ ListaJ *walker; walker=h; while(walker->next!=NULL) walker=walker->next; walker->next=nowa; } return h; } void pokaz(ListaJ *h){ if(h!=NULL){ ListaJ* walker=h; while (walker!=NULL){ printf("%d,",walker->key); walker=walker->next; } } else{ printf("lista pusta"); } } int szukaj(ListaJ *h,int k){ ListaJ *walker=h; while ((walker!=NULL) && (walker->key!=k)){ walker=walker->next; } return walker; } ListaJ *usunG(ListaJ *h){ ListaJ *tmp=h; if(tmp!=NULL){ h=h->next; free(tmp); tmp=NULL; } return h; } ListaJ *usunO(ListaJ *h){ ListaJ *tmp=h; if(tmp){ ListaJ *walker=h; while (walker->next!=NULL){ tmp=walker; walker=walker->next; } if(walker==tmp){ free(h); h=NULL; } else{ free(walker); tmp->next=NULL; walker=NULL; } } return h; } int main() { ListaJ *head=NULL; head=wstawO(head,8); head=wstawO(head,4); head=wstawG(head,5); head=wstawG(head,1); pokaz(head); ListaJ* p=szukaj(head,9); if(p) printf("\nznaleziono"); else printf("\nnieznaleziono\n"); head=usunG(head); pokaz(head); printf("\n"); head=usunO(head); pokaz(head); return 0; }