Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- struct element
- {
- int i;
- struct element *next;
- };
- struct element *utworz();
- struct element pisz(struct element *e1);
- struct element wyczysc(struct element *lista);
- struct element *dodaj (struct element *lista, int a);
- struct element * dodajw(struct element *Lista,struct element *elem, int a);
- struct element * znajdzp(struct element *Lista, int a);
- struct element * usun(struct element *Lista,int a);
- int main()
- {
- int a,b,c,x;
- struct element *pp=utworz(), *elem;
- printf("Podaj ilosc elementow listy:");
- scanf("%i", &a);
- printf("Podaj elementy: ");
- for(int i = 0; i<a;i++)
- {
- scanf("%i", &x);
- dodaj_k(pp,x);
- }
- printf("\n",pisz(pp->next));
- printf("co cie boli (i chcesz usunac):\n");
- scanf("%i", &a);
- usun(pp,a);
- pisz(pp->next);
- printf("\n co cie nie boli (i chcesz dodac):\n");
- scanf("%i", &b);
- printf ("za jakim elementem: ");
- scanf("%i", &c);
- elem=znajdzp(pp,c);
- dodajw(pp, elem, b);
- pisz(pp->next);
- return 0;
- }
- struct element *utworz()
- {
- struct element *wsk=malloc(sizeof(struct element));
- wsk -> next = NULL;
- return wsk;
- };
- void wyszysc (struct element *lista )
- {
- struct element *wsk=lista->next;
- lista=wsk;
- while(lista!=NULL)
- {
- lista=lista->next;
- free(wsk);
- wsk=lista;
- }
- }
- struct element pisz(struct element *e1)
- {
- while(e1!=NULL)
- {
- printf("%i ",e1->i);
- e1=e1->next;
- }
- };
- void dodaj_k(struct element *lista, int a)
- {
- while(lista->next!=NULL)
- {
- lista =lista->next;
- }
- struct element *wsk = malloc (sizeof(struct element ));
- lista -> next = wsk;
- wsk -> i=a;
- wsk -> next = NULL;
- };
- struct element *dodaj (struct element *lista, int a)
- {
- struct element *wsk = malloc (sizeof(struct element));
- wsk -> i=a;
- wsk -> next=lista;
- return wsk;
- };
- struct element * usun(struct element *Lista,int a){
- struct element *wsk,*wsk2;
- if(Lista==NULL)
- return Lista;
- wsk=Lista;
- if(Lista->i==a){
- Lista = Lista->next;
- free(wsk);
- }
- else{
- while((wsk->next!=NULL)&&(wsk->next->i!=a)) wsk=wsk->next;
- if(wsk->next!=NULL){
- wsk2=wsk->next;
- wsk->next=wsk2->next;
- free(wsk2);
- }
- }
- return Lista;
- }
- void dodaj_p(struct element *lista, int a)
- {
- struct element *wsk = malloc(sizeof(struct element));
- wsk->i=a;
- wsk->next=lista->next;
- lista->next=wsk;
- }
- struct element * dodajw(struct element *Lista,struct element *elem, int a){
- struct element *wsk;
- wsk=malloc(sizeof(struct element));
- wsk->i=a;
- if(elem==NULL){
- wsk->next=Lista;
- Lista=wsk;
- }
- else
- {
- wsk->next=elem->next;
- elem ->next=wsk;
- }
- return Lista;
- }
- struct element * znajdzp (struct element *lista, int a)
- {
- lista=lista->next;
- while((lista->next!=NULL)&&(lista->next->i!=a))
- lista=lista->next;
- return lista;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement