c++ tworzenie listy

0

Witam. Mam napisać program który łączy dwie listy tak, że tworzy trzecią listę która zawiera na zmianę elementy pierwszej i drugiej listy i nie mam pomysłu jak to zrobić.

 #include <iostream>

using namespace std;

// definicje list
struct lista
{
  lista *next, *nowa1;
  int elementy1;
};


//Dodawanie elementow
void l_push_front(lista * & head, int v)
{
	lista * p;

	p = new lista;			
	p->elementy1 = v;		
	p->next = head;
	p->nowa1 = head;
	head = p;
}


// Ilosc elementow
unsigned l_size(lista * p)
{
  unsigned c = 0;

  while(p)
  {
    c++;     
    p = p->next;
  }
  return c;
}

// Wyswietlanie elementow
void l_printl(lista* p)
{
	unsigned i;

	cout << "Liczba elementow : " << l_size(p) <<"\n"<<endl;

	for(i = 1; p; p = p->next)
		cout<< p->elementy1 << "   ";
	cout << endl<<endl;
}

void trzecia(lista * & head)
{
	
}

int main()
{
	lista *lista1 = NULL;
	lista *lista2 = NULL;
	lista *lista3 = NULL;
	int i;

	for(i = 10; i > 0; i--)
		{
			if(i % 2 != 0)
				l_push_front(lista1,i);
		}
	l_printl(lista1);
	

	for(i = 10; i > 0; i--)
		{
			if(i % 2 == 0)
				l_push_front(lista2,i);
		}
	l_printl(lista2);


	
	return 0;
} 
0

dopóki pierwsza lista nie pusta oraz druga nie pusta

  • jeżeli pierwsza lista nie pusta pobierz z niej element i wrzuć do trzeciej
  • jeżeli druga lista nie pusta pobierz z niej element i wrzuć do trzeciej
    koniec pętli.
0
void trzecia(lista * & head, lista * & head2)
{
	lista *n;

	n = new lista;			
	n->elementy1 = ;		
	n->nowa1 = head;
	head = n;
}

Pojawił się jeszcze jeden problem nie wiem jak się odwołać do elementu innej listy.

0

Wszystkie listy są takie same, więc odwołuje się do nich dokładnie tak samo.

0

Dalej nie wiem jak to zrobić. W poprzednich listach po prostu podawałem do funkcji argument który tam przyjmuje sobie wartość z tych warunków w pętlach i w tym miejscu

p->elementy1 = v; 

przypisywałem pod element. W tej trzeciej mam użyć elementu z innej listy czyli za to "v" mam podać element listy raz jednej raz drugiej.

0

dokładnie robisz tak jak Ci pisał _13th_Dragon w pierwszym poście.

Weź sobie pętle która wyświetla Ci elementy z danej listy i rozszerz ją po prostu.

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