Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct element
- {
- int dana;
- struct element *nastepny, *poprzedni;
- }element;
- typedef struct lista
- {
- element *head, *tail;
- int size;
- }lista;
- void init(lista *L)
- {
- L->head=L->tail=NULL;
- L->size=0;
- }
- void wyswietl_od_konca(lista *L)
- {
- element *k;
- k=L->tail;
- if(k==NULL)
- printf("\nPUSTA LISTA!\n");
- while(k!=NULL)
- {
- printf("Dane: %d\n", k->dana);
- k=k->poprzedni;
- }
- return;
- }
- void wyswietl_od_poczatku(lista *L)
- {
- element *k;
- k=L->head;
- if(k==NULL)
- printf("\nPUSTA LISTA!\n");
- while(k!=NULL)
- {
- printf("Dane: %d\n", k->dana);
- k=k->nastepny;
- }
- return;
- }
- void dodaj_na_poczatek(lista *L, int a)
- {
- element *r;
- r=(element*)malloc(sizeof(element));
- r->dana=a;
- L->size++;
- r->poprzedni=NULL;
- r->nastepny=L->head;
- L->head=r;
- if(r->nastepny==NULL)
- L->tail=r;
- else
- r->nastepny->poprzedni=r;
- return;
- }
- void usun_z_poczatku(lista *L)
- {
- element *e;
- e=L->head;
- if(L->head==NULL)
- return;
- L->size--;
- L->head=e->nastepny;
- free(e);
- if(L->head==NULL)
- L->tail=NULL;
- else
- L->head->poprzedni=NULL;
- return;
- }
- void dodaj_na_koniec(lista *L, int a)
- {
- element *r;
- r=(element*)malloc(sizeof(element));
- r->dana=a;
- L->size++;
- r->nastepny=NULL;
- r->poprzedni=L->tail;
- L->tail=r;
- if(r->poprzedni==NULL)
- L->head=r;
- else
- r->poprzedni->nastepny=r;
- return;
- }
- void usun_z_konca(lista *L)
- {
- element *e;
- e=L->tail;
- if(L->tail==NULL)
- return;
- L->size--;
- L->tail=e->poprzedni;
- free(e);
- if(L->tail==NULL)
- L->head=NULL;
- else
- L->tail->nastepny=NULL;
- return;
- }
- element* szukaj(lista *L, int k)
- {
- int i;
- element *p;
- p=L->head;
- if(L->size<k || k<1)
- {
- printf("\nNie ma takiego elementu!\n");
- return NULL;
- }
- else
- for(i=1; i<k; i++)
- p=p->nastepny;
- return p;
- }
- int main()
- {
- int liczba;
- lista nowa_lista;
- init(&nowa_lista);
- /*puts("Podaj element dodany(znak konczy wprowadzanie)");
- while((scanf("%d",&liczba))==1)
- {
- head = dodaj_element(head,liczba);
- }
- getchar();*/
- dodaj_na_poczatek(&nowa_lista,5);
- dodaj_na_poczatek(&nowa_lista,6);
- dodaj_na_koniec(&nowa_lista,4);
- putchar('\n');
- wyswietl_od_poczatku(&nowa_lista);
- putchar('\n');
- wyswietl_od_konca(&nowa_lista);
- szukaj(&nowa_lista,5);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement