نمایش نتایج 1 تا 2 از 2

نام تاپیک: پیاده سازی توابع pop ,push در پشته بدون کلاس

  1. #1

    پیاده سازی توابع pop ,push در پشته بدون کلاس

    با سلام به دوستان
    در اینجا دو تا سوال در رابطه با پیاده سازی تابع اضافه کردن یک عنصر به پشته
    و پیاده سازی تابع حذف کردن یک عنصر به پشته رو دارم


    void push(int *top,elementtype item)
    {if (*top>=(maxstack-1))
    {stackful(); //return an error key
    return;}
    stack[++*top]=item;
    }


    در اینجا سوالاتم مربوط به نواحی رنگی هست
    ایا میشه بجای void نوع دیگه ای گذاشت
    بعد در رابطه با قسمت اخر ممنون میشم راهنماییم کنید ایا برداشت من درست است
    اول یک واحد به اشاره گره top افزوده میشه و بعد ایتم در محلی که اشاره گر تاپ بهش اشاره میکنه ریخته میشه
    چرا از اکولاد استفاده کردیم ایا میشد بجای اون از پرانتز استفاده کرد


    elementtype pop(int * top)
    {
    if(*top==-1)
    return stack empty();
    return stack [(*top)--];
    }



    در اینجا هم میشه هر نوعی که خواستیم بزاریم حتی void
    و در قسمت اخر چرا اول اشاره گر top را داخل پرانتز گذاشتیم بعد بهش دستور کم شدن یک واحد دادیم ؟

  2. #2
    کاربر تازه وارد آواتار wanted_boy_2010
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    ایران
    پست
    37

    نقل قول: پیاده سازی توابع pop ,push در پشته بدون کلاس

    سلام دوست عزیز. بستگی به خودت داره. اگه پشته رو خودت بنویسی میتونی به غیر از void از خروجی های دیگه هم استفاده کنی.
    مثلا از خروجی bool استفاده کنی: اگه عملیات موفقیت آمیز بود true رو برگردونه و در غیر اینصورت false رو برگردونه.

    تو این تابعی که نوشتی پشته از نوع آرایه هستش و برای دسترسی به آرایه باید از آکولاد استفاده کنی.

    برای اینکه top به خونه ای اشاره می کنه که داخلش مقداره. با این دستور اول مقدار رو برمی گردونه و چون یکی از پشته برداشته با عملگر -- یه خونه می یاد عقب.

    امیدوارم که خوب توضیح داده باشم.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •