Mam napisany program obliczający rozmiar listy, jednak po uruchomieniu pojawiają mi się błędy. Bardzo proszę o poprawienie kodu i wytłumaczenie błędów.
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <locale.h>
using namespace std;
struct slistE1
{
slistE1 *next;
int data;
}
void
insert_front (slistE1 * &lista, int data)
{
slistE1 *p = new slistE1;
p->data = data;
p->next = lista;
lista = p;
}
void
delete_front (slistE1 * &lista)
{
slistE1 *p;
p = lista;
if (p)
{
lista = p->next;
delete p;
}
}
int size (slistE1 * p);
{
p = slistE1;
int licznik = 0;
while (p)
{
licznik = licznik + 1;
p = p->next;
}
}
void
print (slistE1 * p)
{
setlocale (LC_CTYPE, "Polish");
cout << "Liczba elementC3w listy: " << size (p) << endl;
for (int i = 1; p; p = p->next)
cout << i++ << ": " << p->data << endl;
cout << endl;
}
int
main ()
{
slistE1 *L = NULL;
int i;
srand (time (NULL));
for (i = 0; i < 20; i++)
{
insert_front (L, rand () % 100);
}
print (L);
for (i = 0; i < 20; i++)
delete_front (L);
print (L);
return 0;
}