اموزش ویژوال بیسک ۶




















Blog . Profile . Archive . Email  


مجله کاوش


ایجاد ساختارهای داده ای در ویژوال بیسیک - بخش اول
مقدمه :

ساختارهای داده ای از نظر تعداد اعضا به دو دسته استاتیک و دینامیک تقسیم می شوند . ساختارهای استاتیک مثل آرایه های یک بعدی و آرایه های دو بعدی ، تعداد اعضای آنها در زمان طراحی برنامه مشخص می شود و در طول اجرای برنامه ثابت است اما تعداد اعضای ساختارهای داده ای دینامیک در طول اجرای برنامه تغییر می کند . لیست پیوندی ( LinkList ) ، پشته ( Stack ) ، صف ( Queue ) و درختهای باینری ( Tree Binary) ، نمونه هایی از ساختارهای داده ای دینامیک هستند .
لیست پیوندی شامل مجموعه ای از عناصر داده ای است که اضافه و حذف اعضا در هر جای لیست ممکن است .
پشته یک ساختار داده ای مهم در کامپایلرها و سیستم های عامل است که عمل اضافه و حذف عناصر از ابتدای آن انجام می شود .
صف یک ساختار داده ای است که عمل اضافه کردن از انتها و عمل حذف کردن از ابتدای آن انجام می شود .
درختهای دودویی برای جستجوی بسیار سریع ، ذخیره سازی داده ها و کامپایل عبارات استفاده می شوند .

نوع داده Variant :

نوع داده variant برای متغیرهایی بکار می رود که بطور صریح نوع آنها تعریف نشده است مثال :
Dim value As Variant
این نوع داده می تواند هر نوع داده ای را در خود ذخیره کند . همچنین برای ایجاد ساختارهای داده ای مثل لیست های پیوندی ، صف ، پشته و درخت مناسب است .
نوع داده موجود در variant می توان توسط توابع VarType و TypeName تعیین کرد . تابع VarType یک مقدار صحیح برمی گرداند که نشان دهنده نوع ذخیره شده در variant است .
مثال :
Dim value as Variant
value=”Hello”x
در اینصورت مقدار بازگشتی ( VarType( value برابر 4 خواهد بود .
تابع TypeName یک رشته برمی گرداند که نشان دهنده نام نوع داده ذخیره شده در variant است .

اخذ حافظه بطور دینامیک Dynamic Memory Allocation :

برای ایجاد و نگهداری ساختارهای داده ای دینامیک بایستی در هنگام اجرای برنامه بتوان فضای بیشتری برای نگهداری داده های جدید بدست آورد . با استفاده از کلمه کلیدی New می توان در ویژوال بیسیک حاقظه دینامیک گرفت :
Set NewNode=New ListNode
که ListNode یک شی از ساختار داده ای مورد نظر ماست .

کلاسهای خود ارجاعی :

کلاس خودارجاعی نوعی کلاس است که دارای یک اشاره گر ( Pointer ) به یک شی از همان نوع کلاس باشد . برای مثال اگر کلاس ما به اسم ClistNode باشد و متغیر زیر را در آن تعریف کنیم ، این کلاس یک کلاس خود ارجاعی است :
Private mNextNode as ClistNode
از mNextNode برای لینک دادن اعضای یک ساختار داده ای دینامیک بهم استفاده می شود ( بعبارت دیگر گره زدن یک شی از کلاس ClistNode به یک شی دیگر از همان کلاس ) . شی های خودارجاعی می توانند به همدیگر لینک شوند و ساختارهای داده ای مثل لیست پیوندی ، صف ، پشته و درخت را ایجاد کنند .
شکل زیر دو شی خود ارجاعی را نشان می دهد که بصورت یک لیست بهم لینک شده اند . عبارت NULL بدین معنا است که شی خودارجاعی به شی دیگری اشاره نمی کند ( Nothing ) و نشان دهنده انتهای ساختار داده است .



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:





نوشته شده در سه شنبه 10 خرداد 1390برچسب:,ساعت 19:9 توسط محمد| |


Power By: LoxBlog.Com