15-05-2013، 07:02 PM
(آخرین ویرایش: 22-05-2013، 04:58 PM، توسط Mohsen Omidvar.)
1 :
برای اضافه کردن به پشته ابتدا توسط تابع خصوصی isfull بررسی می شود که آیا پشته پر است یا خیر،اگر isfull مقدار 1 را برگرداند یعنی حافظه پشته پر استو نمیتوان داده ای به پشته اضافه کرد و در صورتی که مقدار isfull برابر با صفر باشد یعنی پشته پر نیست و قابلیت اضافه شدن را دارد.
2:
top پشته همیشه به بالای پشته اشاره می کند،زمانی که پشته خالی است top برابر با 1- و زمانی که پشته پر است top برابر با n-1 است.
3 :
برای اضافه کردن به پشته ابتدا یکی به top اضافه میکنیم ،سپس داده را در پشته قرار می دهیم ،اما در عمل حذف ابتدا داده را حذف می کنیم سپس یکی از top کم میکنیم.
4 :
در عمل حذف ابتدا توسط تابع خصوصی is empty خالی بودن پشته چک می شود در صورتی که مقدار is empty برابر با 1 باشد یعنی پشته خالی است و اجازه حذف از پشته را نداریم و در صورتی که مقدار این تابع برابر صفر شود یعنی پشته خالی نمی باشد و می توان عمل حذف از پشته را انجام داد.
مثال :
کلاسی به نام پشته تعریف کنید که در آن بتوان عمل حذف و اضافه (push,pop)انجام داد.
برای اضافه کردن به پشته ابتدا توسط تابع خصوصی isfull بررسی می شود که آیا پشته پر است یا خیر،اگر isfull مقدار 1 را برگرداند یعنی حافظه پشته پر استو نمیتوان داده ای به پشته اضافه کرد و در صورتی که مقدار isfull برابر با صفر باشد یعنی پشته پر نیست و قابلیت اضافه شدن را دارد.
2:
top پشته همیشه به بالای پشته اشاره می کند،زمانی که پشته خالی است top برابر با 1- و زمانی که پشته پر است top برابر با n-1 است.
3 :
برای اضافه کردن به پشته ابتدا یکی به top اضافه میکنیم ،سپس داده را در پشته قرار می دهیم ،اما در عمل حذف ابتدا داده را حذف می کنیم سپس یکی از top کم میکنیم.
4 :
در عمل حذف ابتدا توسط تابع خصوصی is empty خالی بودن پشته چک می شود در صورتی که مقدار is empty برابر با 1 باشد یعنی پشته خالی است و اجازه حذف از پشته را نداریم و در صورتی که مقدار این تابع برابر صفر شود یعنی پشته خالی نمی باشد و می توان عمل حذف از پشته را انجام داد.
مثال :
کلاسی به نام پشته تعریف کنید که در آن بتوان عمل حذف و اضافه (push,pop)انجام داد.
کد:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace stack
{
class Program
{
class stack{
private int[]a,top,n;
private int isfull (){
if(top==n-1)
return 1;
return 0;
}
private int isempty(){
if(top==n-1)
return 1;
return 0;
}
public stack (int len ){
top = -1;
n=len;
a=new int [n];
}
public void add(int x){
if(isfull()==1)
Console.WriteLine("full");
else{
top ++;
a[top]x;
}
}
public void remove(){
if(isempety()==1)
Console.WriteLine("empty");
else{
int x=a[top];
top--;
Console.WriteLine(x.ToString());
}
}
}
static void Main(string[] args)
{stack s;
int len ;
(x=Convert.ToInt32(Console.ReadLine());
s=new stack()len;
s.add(17);
s.remove();
s.remove();
}
}
}
*شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
خورشید باش که اگر خواستی بر کسی نتابی نتوانی.