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