A Stack ADT és a Stack Data Structure ugyanaz?


Legjobb válasz

Feladó absztrakt adattípus:

A informatikában egy elvont adattípus ( ADT ) egy matematikai modell a adattípusok , ahol egy adattípust a viselkedése ( szemantika ) határoz meg egy user az adatok, különös tekintettel a lehetséges értékekre, az ilyen típusú adatokra vonatkozó lehetséges műveletekre és ezeknek a műveleteknek a viselkedésére. Ez ellentétben áll az adatszerkezetekkel , amelyek konkrét adatok az ábrázolásokról, és a megvalósító, nem pedig a felhasználó nézőpontját jelentik.

A adatstruktúrából :

A számítástechnikában egy adatstruktúra egy sajátos módja az adatok rendszerezésének egy számítógépben, hogy azok felhasználhatók legyenek hatékonyan .

Az adatstruktúrák egy vagy több meghatározott absztrakt adattípust valósíthatnak meg (ADT), amelyek a műveleti szerződés és összetettségük megadásának eszközei.

Az adatstruktúra az ADT által biztosított szerződés konkrét megvalósítása

Ez azt jelenti:

1. Az ADT absztrakt ábrázolás, felhasználói szempontból

2. A DS konkrét reprezentáció, a felhasználó szempontjából nem

Egyszerű fogalmazással:

1. A verem ADT , csak azt határozza meg, hogy a felhasználó számára legyen push, pop stb.

2. Verem (hasonlóan a többi ADT-hez, mint a várólista) / div> tömb vagy lista (linkelt lista stb.)

Összefoglaló:

A verem nem DS, hanem ADT, és a egyéb DS.

Remélem, hogy segített.

Sok szerencsét

Válasz

Verem

A verem az objektumok tárolója, amelyeket a last-in first-out (LIFO) elvnek megfelelően helyeznek be és távolítanak el. A lenyomható kötegekben csak két művelet engedélyezett: tolja az elemet a verembe, és pop az elem a veremből. A verem korlátozott hozzáférésű adatszerkezet – az elemeket csak a tetején lehet hozzáadni és eltávolítani a veremből. A nyomás hozzáad egy elemet a verem tetejéhez, pop eltávolítja az elemet a tetejéről . Hasznos hasonlat, ha egy halom könyvre gondolunk; csak a legfelsõ könyvet távolíthatja el, a tetején pedig új könyvet is felvehet.

A verem rekurzív adatstruktúra. Itt található a verem strukturális meghatározása:

Alkalmazások

  • A verem legegyszerűbb alkalmazása egy szó megfordítása. Egy adott szót tolsz egymásra – betűről betűre -, majd betűket dobsz a veremből.
  • Egy másik alkalmazás a “visszavonás” mechanizmus a szövegszerkesztőkben; ez a művelet úgy valósul meg, hogy az összes szövegváltozást veremben tartja. Visszalépés . Ez egy olyan folyamat, amikor az elemek sorozatának legfrissebb adateleméhez kell hozzáférnie. Gondoljon egy labirintusra vagy labirintusra – hogyan találja meg az utat a bejárattól a kijáratig? Miután elérte a zsákutcát, vissza kell térnie. De visszalépés hová? az előző választási pontra. Ezért minden választási pontnál egy rakatban tárolja az összes lehetséges választást. Ezután a visszalépés egyszerűen azt jelenti, hogy a következő választ választja ki a veremből.
  • Nyelvi feldolgozás: a paraméterek és a helyi változók számára a belső helyet a stack segítségével hozzák létre. rekurzióhoz

Megvalósítás

Az osztályok standard könyvtárában az adattípus-verem egy adapter osztály, vagyis egy verem más adatstruktúrák tetejére épül. A verem alapstruktúrája lehet egy tömb, egy vektor, egy ArrayList, egy linkelt lista vagy bármely más gyűjtemény. Az alapul szolgáló adatstruktúra típusától függetlenül a Veremnek ugyanazt a funkciót kell megvalósítania.Ez egyedi felület biztosításával érhető el:

public interface StackInterface

{

public void push(AnyType e);

public AnyType pop();

public AnyType peek();

public boolean isEmpty();

}

A a következő kép bemutatja a megvalósítás ötletét összetétel szerint .

Egy másik megvalósítási követelmény (a fenti felületen felül) az, hogy az összes veremműveletnek

O (1) állandó időben kell futnia

. Az állandó idő azt jelenti, hogy van valami állandó k, így egy művelet k nanoszekundumnyi számítási időt vesz igénybe, a verem méretétől függetlenül. span>

Egy tömb alapú megvalósításban a következő mezőket tartjuk fenn: alapértelmezett méretű A tömb (≥ 1 ), a top változó, amely a verem legfelső elemére és a kapacitásra utal a tömb méretére utal. A top változó -1-ről capacity - 1 -re változik. Azt mondjuk, hogy a verem üres, ha top = -1, és a verem tele van, amikor top = capacity-1.

Javítva méretű verem absztrakció, a kapacitás változatlan marad, ezért amikor a top eléri a kapacitást , a verem objektum kivételt vet.

Dinamikus verem absztrakcióban, amikor a top eléri a kapacitást , megduplázzuk a verem méretét.

Összekapcsolt lista alapú megvalósítás

Összekapcsolt lista alapú implementáció biztosítja a legjobb (hatékonysági szempontból) dinamikus verem megvalósítást.

Forrás – Verem és várólista

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük