Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –

Podobné prezentace


Prezentace na téma: "Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –"— Transkript prezentace:

1 Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam – velmi často používaná datová struktura Práce se spojovými seznamy Způsob práce se spojovým seznamem a konkrétní složitost obslužných algoritmů jsou závislé na použité organizaci seznamu. SYSTÉMOVÁ TŘÍDA SIMSET

2 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Jednosměrný spojový seznam Jedná se o nejjednodušší strukturu realizující spojový seznam. Každý prvek odkazuje na svého následníka a je zpřístupněn jednou referenční proměnnou, která odkazuje na první prvek. Zpřístupňující proměnná Odkaz na následující prvek seznamu Obsah položky

3 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Dvousměrný spojový seznam Každý prvek odkazuje jak na svého předchůdce, tak na svého následníka a zpřístupnění je možné na jednom či druhém či obou koncích. Singulární případy při zařazování či ubírání na některém z konců seznamu. Zpřístupňují proměnné Odkaz na následující prvek seznamu Obsah položky Odkaz na předcházející prvek seznamu

4 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Kruhový spojový seznam Singulární případy lze zamezit kruhovou organizací seznamu,tj. první prvek prohlásíme definitoricky následníkem posledního prvku a poslední prvek předchůdcem prvního. Ke zpřístupnění „ obou konců“ kruhového seznamu stačí jediná referenční proměnná. Zpřístupňující proměnná

5 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Reprezentace prázdného seznamu Zbývající singularita – práce s „ prázdným seznamem“, tj. zařazování prvního a vyjímání poslední prvku seznamu. Odstranění – přidání speciálního prvku, který nebudeme počítat mezi prvky seznamu a který nebudeme nikdy ze seznamu vypouštět Speciální prvek

6 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Prázdný seznam v tomto pojetí bude reprezentován seznamem (stále kruhovým) obsahující pouze zmíněný speciální prvek.

7 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Filozofie třídy SIMSET Popsané pojetí cyklických kruhových seznamů obsahujících speciální prvek, který nebudeme počítat mezi vlastní členy seznamu budeme nazývat hlavou seznamu. Základní datová struktura – stejná jak pro prvky seznamu tak pro jeho hlavu, tj. odpovídající datový prototyp musí obsahovat dvě složky pro referenční odkazy na následníka a předchůdce v seznamu. Prefixační systém jazyka PC-SIMULA umožňuje, aby datové prototypy vlastních prvků seznamu a jeho hlavy byly kvalifikačně odlišné, tj. ke třídě základní datové struktury vytvoříme dvě podtřídy:  prototyp hlav seznamů  prototyp vlastních prvků seznamů

8 SIMULACE DISKRÉTNÍCH SYSTÉMŮ V třídě SIMSET je takové kvalifikační odlišení realizováno. základní datový prototyp – třída linkage o podtřída prototyp hlav seznamů – třída head o podtřída prototyp vlastních prvků seznamu – třída link linkage headlink

9 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Deklarace systémové třídy SIMSET : class Simset; begin class linkage begin ref (linkage) SUC, PRED; …. end; linkage class head; …; linkage class link; …; end ;

10 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Deklarace třídy linkage: - základní prototyp struktury řazené do kruhového dvousměrného seznamu class linkage; begin ref(linkage) SUC, PRED; ref(linkage) procedure suc; suc:-if SUC in link then SUC else none; ref(linkage) procedure pred; pred:-if PRED in link then PRED else none; ref(linkage) procedure prev; prev:- PRED; end ; - identifikátory složené z velkých písmen označují uživateli nedostupné veličiny

11 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Třída head: - prototyp hlavy seznamu, nerozšiřuje třídu linkage - z uživatelského hlediska je celý seznam reprezentován (zpřístupňován) právě hlavou. Procedury: procedure first – funkční hodnotou je odkaz na první položku v seznamu, pro prázný seznam nabývá hodnoty none procedure last – odkazuje na poslední položku seznamu, pro prázný seznam nabývá hodnoty none procedure empty – nabývá hodnoty true při prázdném seznamu procedure cardinal – funkční hodnotou je celé číslo udávající počet položek seznamu procedure clear – odstraňuje všechny položky ze seznamu

12 SIMULACE DISKRÉTNÍCH SYSTÉMŮ Třída link: - Prototyp exemplářů chápaných jako vlastní prvky spojového seznamu. Obsahuje pouze deklarace lokálních procedur – nerozšiřuje třídu linkage - pouze kvalifikační odlišení vlastních prvků spojového seznamu od jeho hlavy – rozdíl jen v obslužných procedurách Procedury: procedure out – odstraňuje položku ze seznamu procedure into(S) – zařazuje položku na konec seznamu procedure follow(X) – zařazuje položku do seznamu za objekt odkazovaný parametrem X procedure precede(X) – zařazuje položku do seznamu před objekt odkazovaný parametrem X


Stáhnout ppt "Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –"

Podobné prezentace


Reklamy Google