Usunięcie elementów listy od jej poczatku - problem

0

Napisalem taki prosty programik do tworzenia dowolnie dlugiej listy i mam problem ze zwinięciem jej od początku.
Poproszę o sugestie i dziekuje.

 #include <iostream>
#include <time.h>
#include <windows.h>
using namespace std;

struct Wezel
{int liczba;
 Wezel *next;
 };

struct Kolejka
  {
 Wezel *first,*last;
  };

void dodaj(Kolejka  &k);
void drukuj(Kolejka &k);
void kasuj(Kolejka &k);

int main()
{
 srand((int)time(NULL));
 Kolejka k={0,0};

 dodaj(k);
 drukuj(k);
 kasuj(k);

return 0;
}

void dodaj(Kolejka &k)
{unsigned size;
    cout << "Ile chcesz wczytac liczb ? ";
    cin >> size;
    Wezel *tmp;
    tmp = new Wezel;
    tmp->liczba=(rand()%100)+0;
    tmp->next=0;
    k.first=tmp;
    k.last=tmp;
    for(unsigned i=0;i<size; i++)
      {tmp = new Wezel;
         tmp->liczba=(rand()%100)+0 ;
         tmp->next=0;
         k.last->next=tmp;
         k.last=tmp;
      }
}

void drukuj(Kolejka &k)
{for(const Wezel *i=k.first;i;i=i->next) cout<<i->liczba<< " ";
}

void free(Kolejka &K)
  {Wezel *tmp=K.first;
     while(K.first!=K.last)
       {Wezel *tmp=K.first;
        K.first=tmp->next;
        delete tmp->liczba;
        delete tmp;
       }
     delete tmp->liczba;
     delete tmp;
     K.last=0;
     K.first=0;
  }
1
void free(Kolejka &K)
  {
   while(K.first)
     {
      Wezel *tmp=K.first;
      K.first=tmp->next;
      delete tmp;
     }
   K.last=0;
  }
0

Dzięki :) , nie wiem czemu ubzdurałem sobie, że najpierw muszę wyczyścić int-a. Tak się chyba robi przy tablicy w strukturze ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1