Palindrom lista dwukierunkowa

0

Witam, muszę napisać program który sprawdzi czy ciąg liczb zapisany w liście dwukierunkowej, jest taki sam gdy odczyta się go od tyłu (czyli np. 5 10 15 10 5). Wiem że muszę przejechać całą listę aby zliczyc ilosc elementow i znalezc ostatni element, a następnie sprawdzać kolejno skrajne liczby (czyli 1 i ostatni element, następnie 2 i przedostatni). Do tej pory udało zbudować mi się taki kod:

int palindrom(listaC *_lista)
{
	int i=0;
	listaC p=*_lista;
	listaC s=*_lista;
	listaC ogon=0;
	while(p)
	{
		printf("%d ",p->klucz);
		p=p->nast;
		i++;
	}
	p=ogon;
	for(i;i<(i/2+1);i--)
	{
		if((s->klucz) == (ogon->klucz))
		{
			s=s->nast;
			ogon=ogon->pop;
		}
	}
	
}
 

Jednak zacinam się przy sprawdzaniu warunku, co robić dalej?

0
p = ogon; 

Przypisanie jest w niewłaściwym kierunku.

for(i;i<(i/2+1);i--)

a ta pętla nie ma szansy się wykonać. Wartość i nie będzie mniejsza od połowy jej wartości.
<tt>i = 7;
i < 7 / 2 +1 ==> 7 < 4 ==> false;
i = 1;
i < 1 / 2 + 1 ==> 1 < 1 ==> false; </tt>
Liczb ujemnych nie biorę pod uwagę, bo zliczanie elementów nie będzie ujemne.

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