sprawdzanie czy element jest na liscie

0

Jak sprawdzić czy element podany element znajduje się na liście? Napisałem coś takiego ale nie działa

int czy_jest_na_liscie(int x)
{
	s=head;
	while (s->next != NULL)
	{
		if (s->key = x)
		{
			sprawdzanie = 1;
			return sprawdzanie;
		}
		else
		{	
			sprawdzanie = 0;
			s = s->next;
			czy_jest_na_liscie(x);
		}
	}
} 
0

operator porównania != operator przypisania

0

Ok poprawiłem ale ciągle mam błąd First-chance exception at 0x00cc1673 in nowy.exe: 0xC0000005: Access violation reading location 0x00000004. </code> w linijce <code class="cpp"> while (s->next != head)

0
michu86 napisał(a)

Ok poprawiłem ale ciągle mam błąd First-chance exception at 0x00cc1673 in nowy.exe: 0xC0000005: Access violation reading location 0x00000004. </code> w linijce <code class="cpp"> while (s->next != head)

Podaj więcej informacji. Kontekst tego wywołania czy coś. Wskaźnik pokazuje na zaalokowaną pamięć?

0

Nie do końca chyba wiesz co robisz.
Albo sprawdzasz czy element jest na liście rekurencyjnie, albo pętlą. Obydwie wersje "dla pewności" nie mają sensu.

Sugestia apropos operatorów dotyczyła instrukcji warunkowej, i chodziło o błędny operator: '=' zamiast '==', a nie o warunek pętli, który był ok (przy założeniu, że chcesz sprawdzać istnienie elementu w liście iteracyjnie).

0
Flaker napisał(a)

Nie do końca chyba wiesz co robisz.
Albo sprawdzasz czy element jest na liście rekurencyjnie, albo pętlą. Obydwie wersje "dla pewności" nie mają sensu.

Sugestia apropos operatorów dotyczyła instrukcji warunkowej, i chodziło o błędny operator: '=' zamiast '==', a nie o warunek pętli, który był ok (przy założeniu, że chcesz sprawdzać istnienie elementu w liście iteracyjnie).

sądziłem, że w drugim poście pokazał już inną część kodu ;) chyba rzeczywiście zmienił warunek pętli

0
Flaker napisał(a)

Nie do końca chyba wiesz co robisz.
Albo sprawdzasz czy element jest na liście rekurencyjnie, albo pętlą. Obydwie wersje "dla pewności" nie mają sensu.

Sugestia apropos operatorów dotyczyła instrukcji warunkowej, i chodziło o błędny operator: '=' zamiast '==', a nie o warunek pętli, który był ok (przy założeniu, że chcesz sprawdzać istnienie elementu w liście iteracyjnie).

Rzeczywiście niepotrzebnie te 2 warunki. Co do operatorów to wiem, że chodziło o '=' zamiast '=='. A błąd polegał na tym, że chciałem przeszukać listę przed jej utworzeniem.

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