( تعداد نمایش : 1673 )

ایجاد ساختارهای داده ای در ویژوال بیسیک – بخش چهارم

کلاس پشته :
همانطور که در بخش قبل گفته شد پشته نوعی لیست پیوندی است که گره های جدید فقط به انتهای آن اضافه شوند . روالهای اصلی پشته Push و Pop هستند .
Push یک گره جدید به بالای پشته اضافه می کند و Pop از بالای پشته گره ای را حذف کرده و مقدار داده آن را بر می گرداند .
یک کلاس پشته را با استفاده از کلاس Clist و بصورت زیر پیاده سازی می کنیم :

Private list As New Clist
Public Sub Push(value as Variant)x
List.InsertAtFront(value)x
End sub
Public Function Pop As Variant
Pop=list.RemoveFromFront()x
End Function
Public Function IsStackEmpty() As Boolean
IsStackEmpty=list.IsEmpty()x
End function
Public Property Get Iterator() as variant
Set Iterator=list.Iterator
End Property

در این کلاس ابتدا یک شی از نوع کلاس Clist تعریف شده است . سپس متدهای Push توسط متد InsertAtFront و Pop توسط متد RemoveFromFront پیاده سازی شده اند .
یک برنامه نمونه :
برای نوشتن یک برنامه برای کار با پشته ابتدا کلاس Stack را که کد آن را در بالا دیدید به پروژه تان اضافه کنید . سپس در بخش کد مربوط به فرمتان ابتدا یک شی از نوع کلاس Stack بصورت زیر تعریف کنید :

Dim mStack as New Stack

سپس در فرمتان سه CommandButton با نامهای Push و Pop و ShowStack و نیز یک TextBox با نام StackMember قرار دهید .
کد زیر را برای کلیک شدن دکمه Push بنویسید :

mStack.push(StackMember.text)x

کد زیر را برای کلیک شدن دکمه Pop بنویسید :

StackMember.text=mStack.Pop()x

کد زیر را برای کلیک شدن دکمه ShowStack بنویسید :

Dim elements as New ClistIterator
Set elements=mStack.Iterator
If elements.HasMoreItems=false then msgbox “stack is empty”x
Else
While elemets.HasMoreItems
Msgbox elements.NextItem
Wend

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن