Lista-nie wyświetlaja się wszystkie elementy.

0

Witam, mam problem przy implementowaniu listy. (polecenie w pierwszym komentarzu kodu) Mianowicie lista nie dosc ze generuje tylko 2 elementy to do tego nie są to elementy losowe. Może ktoś mi wskazać gdzie popełniłem błąd?

 #include <iostream>
#include <cstdlib>
using namespace std;


// Polecenie: napisz program generujacy i wyswietlajacy liste jednostronnie wiazana o dlugosci 20 w sposob losowy z 
// przedzialu 1-15
struct node
{
	int val;
	node *next;
};
void dodajelement(node *&lista , int x)   // 
{ 
	node *pom;
	node *pom2 ;
	if (lista==NULL)
	{
	pom=new node;
	pom -> val = x;
	pom -> next = NULL;       					// ogarnac!!!
	lista=pom;
	cout<<pom->val;
	pom=NULL;
	
	}
	else
	{
		pom=lista;
	
		if (pom->next!=NULL)
		{
			pom=pom->next;
		}
		else
		{
			pom2 = new node;
			pom2->val =x;
			pom2->next =NULL;
			pom ->next=pom2;
			cout<<pom2->val;
		}
}
}
void tworzliste(node *&lista)
{
	for (int i=0;i<20;i++)
	{
		int z;
		z = rand() % 15;
		dodajelement(lista , z);
	}
}

int main(int argc, char** argv) 
{
	node *lista=NULL;
	tworzliste(lista);
	system("pause");
	return 0;
}
0

a gdzie srand (time(NULL)); ?

0

no tak dodałem srand, dziekuje. Problem z losowymi liczbami rozwiazany ale ciagle wyswietlaja sie tylko 2 elementy.

0

dodajElement nie powinien wyswietlac nic powinienes miec

tworzListe
wyswietlListe
dodajElement

0

jak dokladnie przeanalizowałem kod zauwazylem ze warunek if jest bez sensu i tam powinienem wstawic while. Teraz wszystko dziala. Dzieki za pomoc.

0

Możesz pozwać samego siebie za notoryczne utrudnianie sobie życia.

#include <iostream>
#include <cstdlib>
using namespace std;
 
struct node 
  {
   int val;
   node *next;
   node(int val,node *next):val(val),next(next) {}
  };
 
int main() 
  {
   node *lista=0;
   for(int i=0;i<20;++i) lista=new node(1+rand()%15,lista);
   for(node *i=lista;i;i=i->next) cout<<i->val<<' ';
   //cin.get();
   return 0;
  }

http://ideone.com/3gVQbD

0

Taka dobra rada, staraj się używać angielskich nazw zmiennych i funkcji.

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