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)