HyperLink


Bejelentkezés
E-mail: 
Jelszó: 






Skip Navigation Links
 

Verem kezelő osztály


Példaprogram letöltése

7303 bájt

Ebben a cikkben egy olyan osztályt mutatunk, mely veremszerű tárolást valósít meg tetszőleges számú objektumunkhoz. Vagyis mindig az utolsónak elhelyezett adatot érhetjük el a veremből.

Veremszerű adattároláshoz a Stack osztályból kell egy példányt létrehoznunk. Ezt rögtön a Form-unk deklarációjánál meg is tesszük és létrehozunk egy st nevű változót.
Private st As Stack = New Stack()
A verembe adatot elhelyezni a Push függvénnyel lehetséges. Paraméterként egy Object típusú objektumot vár, vagyis szinte bármilyen típusú adat elhelyezhető. Mellékelt példában a Push gomb a TextBox1-be írt szöveget helyezi el a verembe.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  st.Push(TextBox1.Text)
  UpdateLabel1()
End Sub
Majd az UpdateLabel1 belső függvényünk hívásával elérjük, hogy megjelenjen a veremben lévő elemek darabszáma a Label1 kontrollon. Ehhez a Stack osztály Count property-jét használjuk fel.
Private Sub UpdateLabel1()
  Label1.Text = "Count: " + st.Count.ToString()
End Sub
A verembe elhelyezett adatokat kiolvasni a Pop függvénnyel lehet. A Pop hívásakor a kiolvasott elem egyúttal eltávolításra is kerül a veremből, tehát az ott tárolt elemek száma is csökken eggyel.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  If st.Count > 0 Then
    Label2.Text = st.Pop().ToString()
    UpdateLabel1()
  End If
End Sub
A Peek függvény használatával lehetőségünk van arra is, hogy a verem legfelső elemét, hasonlóan a Pop-hoz kiolvassuk, viszont ezt úgy, hogy ez az elem kiolvasás után is megmarad a veremben, vagyis nem kerül eltávolításra, mint a Pop esetén.
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  If st.Count > 0 Then
    Label3.Text = st.Peek().ToString()
    UpdateLabel1()
  End If
End Sub
Arra is van lehetőségünk, hogy ne csak a legfelső eleméhez jussunk hozzá a veremnek, hanem a teljes tartalmához, mégpedig úgy, hogy azok ne kerüljenek törlésre. Ehhez a ToArray függvényhívást kell használnunk, mely egy olyan tömböt ad vissza, melynek minden eleme Object típusú. A tömb egyes elemei a verem egyes elemei lesznek. Így például egy For Each ciklussal könnyen végigmehetünk a verem elemein.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  Dim array() As Object = st.ToArray()
  Dim s As Object
  ListBox1.Items.Clear()
  For Each s In array
    ListBox1.Items.Add(s.ToString())
  Next
End Sub
A verem összes elemét törölhetjük egy lépésben, ha a Clear függvényt meghívjuk.
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
  st.Clear()
  UpdateLabel1()
End Sub

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2010 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |