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