Obojsmerný lineárny zoznam

Riešenie


Úloha 16

Uvedieme len funkciu, ktorá otestuje, či je reťazec uložený v prvkoch daného obojsmerného lineárneho zoznamu palindrom.

typedef struct prvok {
	char znak;
	struct prvok *nasled;
	struct prvok *predch;
} TPrvok;

int test(TPrvok *z, TPrvok *k, int poc)
{
	int i = 1;
	while ((z->znak == k->znak) && (i <= poc/2)) {
		z = z->nasled;
		k = k->predch;
		i++;
	}

	return ((z->znak != k->znak) ? 0 : 1)
}

z, k sú ukazovatele na začiatok a koniec zoznamu
poc je dlžka vstupného raťazca – počet znakov (zistíme ju priamo pri načítaní alebo dodatočne jedným prechodom cez zoznam)