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).