Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct lista_l
- {
- int l;
- struct lista_l *n;
- } Element;
- typedef Element *lista;
- int czy_dalej();
- lista tworz();
- void czyt_l(lista pocz);
- lista nowa_przed(lista pocz);
- void kasuj(lista pocz);
- int main()
- {
- lista pocz;
- pocz=tworz();
- czyt_l(pocz);
- lista dwa=nowa_przed(pocz);
- czyt_l(dwa);
- kasuj(pocz);
- kasuj(dwa);
- return 0;
- }
- int czy_dalej()
- {
- char c;
- printf("Czy chcesz kontynuowac(t/n)? ");
- scanf(" %c", &c);
- if (c=='t'|| c=='T') return 1;
- else return 0;
- }
- lista tworz()
- {
- lista pocz;
- int a;
- if(czy_dalej())
- {
- printf("Podaj liczbe: ");
- scanf("%d", &a);
- pocz= malloc(sizeof(Element));
- pocz->l=a;
- pocz->n= tworz();
- return pocz;
- }
- else return NULL;
- }
- void czyt_l(lista pocz)
- {
- int i;
- lista c;
- c=pocz;
- printf("\n");
- if(c==NULL) printf("\nLista pusta!");
- for(i=0; c!=NULL; i++,c=c->n) printf("%d liczba w liscie: %d\n",i+1, c->l);
- }
- lista nowa_przed(lista pocz)
- {
- int a, b, c;
- lista nowa, pom;
- if(pocz==NULL)
- {
- printf("\nLista przychodzaca pusta!");
- nowa=NULL;
- return nowa;
- }
- printf("\nPodaj od ilu do ilu chcesz miec liczby(z tymi liczbami): ");
- scanf("%d %d", &a, &b);
- if(a>b)
- {
- printf("\nZbior pusty!");
- nowa=NULL;
- return nowa;
- }
- pom=malloc(sizeof(Element));
- nowa=pom;
- while(pocz!=NULL)
- {
- c=pocz->l;
- if((c>=a)&&(c<=b))
- {
- pom->l=c;
- pom->n=malloc(sizeof(Element));
- pom=pom->n;
- }
- if(pocz->n==NULL)
- {
- pom=NULL;
- return nowa;
- }
- pocz=pocz->n;
- }
- pom=NULL;
- return nowa;
- }
- void kasuj(lista pocz)
- {
- if (pocz != NULL)
- {
- kasuj(pocz -> n);
- free(pocz);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment