Wstawianie na początek lista jednokierunkowa c++

0

Hej,
mam taki problem. Muszę wstawić (skleić) jedną listę z drugą. Muszę wstawić fragment na początek pierwontej listy i na koniec. Na koniec wstawianie działa, ale dla początku już nie.
Funkcja

 void wstaw_trzy_razy(wezel*& glowa, wezel* fragment)
{
	wezel* p = new wezel;
	wezel* f = new wezel;
	p=glowa;
	f=fragment;
	int i;
	i = liczba_elementow_listy(glowa);
	if(i%2!=0)
	{
		while(p->nast!=NULL)
			p=p->nast;
		p->nast=fragment;
		while(f->nast!=NULL)
			f=f->nast;
		f->nast = glowa;
	}

}

main

#include "biblioteka.h"
#include <iostream>
using namespace std;
 
int main()
{
   
   /*********** wstaw_trzy_razy ***********/
   cout << "\n\n******** wstaw_trzy_razy ********\n";
 
   cout << "\nPrzyklad 2:\n";
   glowa = stworz_liste(5, 4);
   wypisz_liste(glowa);
   wstawiane = stworz_liste(2, 6);
   wypisz_liste(wstawiane);
   wstaw_trzy_razy(glowa, wstawiane);
   wypisz_liste(glowa);
   usun_liste(glowa);
   usun_liste(wstawiane);
 
   system("pause");
   return 0;
} 

Co jest nie tak?

0

A jeszcze treść zadania
Wstaw kopię podanej listy "fragment" do danej listy jednokierunkowej
"glowa" na początku, na końcu, oraz, jeżeli lista zawiera parzystą
liczbę elementów, w środku

Przykład:
jeżeli funkcja zostanie wywołana dla listy (1, 2, 4, 9) z parametrem
fragment=(3, 2, 1), w wyniku otrzymamy listę
(3, 2, 1, 1, 2, 3, 2, 1, 4, 9, 3, 2, 1)

0

Zacznij może od opracowania funkcji:
wstaw_za(wezel *&glowa,int wartosc);
lub:
wezel *wstaw_za(wezel *glowa,int wartosc);

Dalej pójdzie z górki.

0

A co ta funkcja ma robić, bo nie rozumiem... I dlaczego int wartosc?

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