1 / 12

SYSTÉMOVÁ TŘÍDA SIMSET

SYSTÉMOVÁ TŘÍDA SIMSET. 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

ingrid
Download Presentation

SYSTÉMOVÁ TŘÍDA SIMSET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYSTÉMOVÁ TŘÍDA SIMSET 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.

  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á Obsah položky Odkaz na následující prvek seznamu

  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 předcházející prvek seznamu Odkaz na následující prvek seznamu Obsah položky

  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 • podtřída prototyp hlav seznamů – třída head • podtřída prototyp vlastních prvků seznamu – třída link linkage head link

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

  10. SIMULACE DISKRÉTNÍCH SYSTÉMŮ Deklarace třídy linkage: - základní prototyp struktury řazené do kruhového dvousměrného seznamu classlinkage; begin ref(linkage) SUC, PRED; ref(linkage) procedure suc; suc:-if SUCin link thenSUCelse none; ref(linkage) procedure pred; pred:-ifPREDin link thenPREDelse 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: • procedurefirst – funkční hodnotou je odkaz na první položku v seznamu, pro prázný seznam nabývá hodnoty none • procedurelast – 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 • procedurecardinal – funkční hodnotou je celé číslo udávající počet položek seznamu • procedureclear – 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: • procedureout – odstraňuje položku ze seznamu • procedureinto(S) – zařazuje položku na konec seznamu • procedure follow(X) – zařazuje položku do seznamu za objekt odkazovaný parametrem X • procedureprecede(X) – zařazuje položku do seznamu před objekt odkazovaný parametrem X

More Related