کارکو advertise laitec sharif univercity تبلیغات در سایت سورس کد
پروژه کامل مدیریت شرکت نرم افزاری با سی شارپ و SQL

پروژه کامل مدیریت شرکت نرم افزاری با سی شارپ و SQL

15000 تومان
دانلود سورس پروژه پایانی وب سایت بنگاه املاک با php

دانلود سورس پروژه پایانی وب سایت بنگاه املاک با php

18000 تومان
دانلود پروژه فروشنده دوره گرد با الگوریتم گرانشی در #C

دانلود پروژه فروشنده دوره گرد با الگوریتم گرانشی در #C

4800 تومان
دانلود برنامه رنگ آمیزی گراف با الگوریتم عقبگرد در سی شارپ

دانلود برنامه رنگ آمیزی گراف با الگوریتم عقبگرد در سی شارپ

3000 تومان
دانلود مقاله ای در مورد الگوریتم  کرم شب تاب FireFly در هوش مصنوعی

دانلود مقاله ای در مورد الگوریتم کرم شب تاب FireFly در هوش مصنوعی

3000 تومان

ساختمان داده پشته stack

پشته (stack) ساختمان داده ای است که از لیست برای سازماندهی داده ها استفاده میکند و یک نوع داده انتزاعی را فراهم میسازد. در پشته عمل اضافه کردن وحذف عنصر، فقط در یک طرف آن، بنام بالای پشته انجام میشود
ساختمان داده پشته stack

ساختمان داده پشته stack 

پشته (stack) ساختمان داده ای است که از لیست برای سازماندهی داده ها استفاده میکند و در عین حال از انتزاع نیز پشتیبانی میکند و یک نوع داده انتزاعی را فراهم میسازد. در پشته عمل اضافه کردن وحذف عنصر، فقط در یک طرف آن، بنام بالای پشته انجام میشود. یعنی عنصری که از همه دیرتر وارد پشته شد، از همه زودتر از پشته حذف میگردد. بهمین دلیل گفته میشود که پشته از سیاست خروج به ترتیب عکس ورود (LIFO) پیروی میکند.

عملیات های پشته:

از آنجایی که عناصر پشته فقط از یک طرف (بالای پشته) قابل دستیابی اند. پس عملیات های متعددی را میتوان روی پشته انجام داد که چند عملیات زیر بعنوان عملیات اصلی پشته مطرح اند:

  • Push : که عنصری را به بالای پشته اضافه میکند.
  • Pop : که عنصر بالای پشته را حذف میکند.
  • Peek : که عنصر بالای پشته را بازیابی میکند ولی حذف نمیکند.
  • StackEmpty : که خالی بودن پشته را تست میکند.
  • Clear  : تمام عناصر پشته را حذف میکند.
  • Contains : مشخص میکند که عنصری در پشته وجود دارد یا خیر.
  • CopyTo : محتویات پشته را درآرایه ای از نوع Object کپی میکند.

 

کلاس Stack :

در C# کلاسی بنام Stack برای استفاده از ساختمان داده ی پشته فراهم شده است که تمام عملیات ها و خواص بالا را دارد. این کلاس برای ذخیره سازی عناصر پشته از یک بافر حلقوی استفاده میکند که موجب میشود، حافظه مورد نیاز برای ذخیره ی عنصری که در پشته قرار میگیرد بطور پویا تخصیص یابد. این کلاس در فضای نام Collections وجود دارد.

 

متدهای سازنده کلاس Stack :

برای استفاده از کلاس Stack باید اشیایی از آن ایجاد کرد. به سه روش میتوان شیء پشته را ایجاد کرد.

  • سازنده پیش فرض، پشته ای خالی ایجاد میکند که ظرفیت آن 10 مقدار است. سازنده ی پیش فرض بصورت زیر فراخوانی میشود:

Stack   muStack  =  new  Stack();

  • روش دوم برای ایجاد شیء پشته این است که آنرا از شیء کلکسیون دیگری ایجاد کنید. برای مثال میتوانید آرایه ی موجود را بعنوان پارامتر به سازنده پشته بفرستید تا پشته ای از عناصر آن آرایه ایجاد شود:
  • روش سوم برای ایجاد شیء پشته این است که ظرفیت اولیه آن را تعیین کنید. از این روش وقتی استفاده میشود که تعداد عناصر پشته از قبل مشخص است. این روش کارایی برنامه را افزایش میدهد.

 

خاصیت Count در کلاس Stack تعداد عناصر موجود در پشته را مشخص میکند. در پشته خالی مقدار آن صفر است. از این خاصیت برای تشخیص خالی بودن پشته استفاده میکنند و در نتیجه در بعضی از پیاده سازی های پشته، متد StackEmpty را پیاده سازی نمیکنند.

 

متدهای کلاس  Stack:

  • Push : این متد، برای پشته ای از نوع صحیح بصورت زیر بکار میرود:

Push (int  item);

       item به بالای پشته اضافه میشود.

 

  • Pop : این متد عنصر بالای پشته را حذف میکند و آن عنصر را برمیگرداند. برای پشته صحیح بصورت زیر بکار میرود:

int  Pop();

 

  • Peek : این متد، که عنصر بالای پشته را برمیگرداند برای پشته نوع صحیح بصورت زیر بکار میرود:

int  Peek ();

این عملیات معادل یک عمل Pop و سپس یک عمل Push برای همان عنصر است.

 

  • Clear  : این متد، تمام عناصر پشته را حذف میکند و احتمالا ظرفیت آنرا به ظرفیت اولیه برمیگرداند. یک کاربرد خوب این متد وقتی است که خطایی در پردازش پشته وجود داشته باشد:

Void  Clear();

 

  • Contains : مشخص میکند که آیا عنصرخاصی در پشته وجود دارد یا خیر. اگر وجود داشته باشد، مقدار true وگرنه   false برمیگرداند. از این متد برای جست وجوی عنصری در پشته استفاده میکنیم که در بالای پشته نیست. این متد برای پشته صحیح بصورت زیر بکار برده میشود:

Contains (int  item);

 

  • CopyTo : این متد محتویات پشته را درآرایه ای از نوع Object کپی میکند. این متد بصورت زیر بکار برده میشود:

CopyTo (array ,  index);

        array  آرایه ای است که محتویات پشته باید در آن کپی شوند و index مشخص میکند محتویات پشته با شروع از چه اندیسی در آرایه array کپی شوند، عناصر پشته به ترتیب LIFO در آرایه کپی میشوند بطوریکه گویی از پشته Pop شده اند و در آرایه قرار گرفته اند.

 

  • ToArray : این متد نیز محتوای پشته را در آرایه کپی میکند با این تفاوت که نمیتوان اندیس شروع کپی را در آرایه مقصد تعیین کرد.

 

 



2
نظرات
  • user avatar مصطفی:
    ۰۸:۳۶:۱۷ __ ۱۳۹۴/۱۰/۲۶

    ]کد مرتب کردن پشته چیه ؟چجوری استفاده اش می کنند ؟

  • user avatar مجیب:
    ۱۱:۰۳:۴۱ __ ۱۳۹۵/۰۸/۰۹

    خیلی ممنونم زحمت بسیار کشیده شده است خسته نباشی دلاور خدا قوت پهلوان مشکل جوانان مارو حل کردی تو اصلا

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
عملیات های پشته در ساختمان دادهمعرفی ساختمان داده stack آموزش کار با پشته ها در سی شارپ #cآشنایی با Data Structure stackعملیات پشته ها در Data Structureساختمان داده LIFO چیست؟پشته ها LIFO Data Structureپشته stack چیست؟پشته ها در ساختمان دادهمعرفی پشته ها در Data Structurestack در ساختان داده ها لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php