8. Posuvný register
8.1 Čo je to?
Posuvný register (shift register) je dynamická údajová štruktúra tvorená konštantným počtom lineárne zreťazených prvkov rovnakého typu, v ktorej sa obsah každého prvku môže presúvať do ľavého resp. do pravého suseda. Princíp „posúvania“ v registri s ôsmimi prvkami môžeme znázorniť takto (x je nový prvok):


Pri posune doľava sa na lineárnom zozname, ktorý predstavuje posuvný register, realizujú súčasne dve operácie:
- Pridanie nového prvku na koniec
- Odobratie prvku zo začiatku
Posuvný register pred posunom doľava:

„Zahodenie“ najľavejšieho prvku – odobratie prvku zo začiatku zoznamu:
p = z;
z = z->dalsi;
free((void*)p);
Pridanie nového prvku na koniec zoznamu:
q = (TPrvok*)malloc(sizeof(TPrvok));
k->dalsi = q;
q->dalsi = NULL;
k = q;
 Posuvný register po posune:
Ak sa pri presune doľava (doprava) prenesie obsah najľavejšieho miesta do najpravejšieho (najpravejšieho do najľavejšieho) hovoríme o cyklickom posune doľava (doprava).
|