Cały kod wyglądał tak:
#include<stdio.h>
#include<stdlib.h>
struct el {
int klucz ;
struct el *nast;
};
typedef struct el elListy ;
typedef elListy * lista ;
void WyswietlListeP( lista _lista )
{
lista l = _lista;
while ( l ){
printf ("%d->", l->klucz);
l = l->nast;
}
printf ("\n");
}
void DNPL (lista *l, int i) // Dodanie na poczatek listy
{
lista p=malloc(sizeof(elListy)) ;
if (i>0)
{
p -> klucz = i;
p -> nast = *l;
*l=p;
}
else
{
printf("Liczba jest ujemna. Podaj dodatnia:\n", i);
}
}
void DNKL (lista *l, int i)
{
lista p = (lista)malloc(sizeof(elListy));
p->klucz=i;
p->nast=0;
while ((*l))
l=&(*l)->nast;
*l=p;
}
lista *szukaj(lista *l, int i)
{
while(*l)
{
if((*l)->klucz==i)
return l;
else
l=&(*l)->nast;
}
return 0;
}
void usun_wszystkie(lista *l, int i)
{
lista pp;
lista *p=l;
while(p=szukaj(p,i))
{
pp=*p;
*p=(*p)->nast;
free(pp);
}
}
lista *szukaj_rek(lista *l,int i)
{
if(*l==0)
return 0;
if((*l)->klucz==i)
return l;
else
return szukaj_rek(&(*l)->nast,i);
}
void usun_wszystkie_rek(lista *l,int i)
{
lista pp;
lista *p=l;
while(p=szukaj_rek(p,i))
{
pp=*p;
*p=(*p)->nast;
free(pp);
}
}
int main()
{
int wybor;
int liczba;
lista l=0;
int i;
printf("Funkcja usuwajaca elementy z listy\n");
printf("[1] Dodanie na poczatek listy\n");
printf("[2] Usuwanie nierekurencyjne elementu z listy\n");
printf("[3] Usuwanie rekurencyjne elementu z listy\n");
printf("[4] Wyswietl liste\n");
printf("[5] Wyjscie z programu\n");
do{
printf("Wybierz: ");
scanf("%d", &wybor);
switch(wybor)
{
case 1:
printf("Podaj liczbe: ");
scanf("%d", &liczba);
DNPL(&l,liczba);
break;
case 2:
printf("Usuwanie nierekurencyjne wszystkich powtorzen elementu z listy\n");
printf("Podaj liczbe: ");
scanf("%d", &liczba);
usun_wszystkie(&l,liczba);
break;
case 3:
printf("Usuwanie rekurencyjne wszystkich powtorzen elementu z listy\n");
printf("Podaj liczbe: ");
scanf("%d", &liczba);
usun_wszystkie_rek(&l,liczba);
break;
case 4:
printf("Wyswietlanie listy od poczatku\n ");
WyswietlListeP(l);
printf("\n");
break;
case 5:
printf("Wyszedłes z programu!");
return 0;
break;
}
}while( wybor>=1 );
return 0;
}