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

نام تاپیک: کپی کردن لیست به صورت بازگشتی

  1. #1

    کپی کردن لیست به صورت بازگشتی

    یه مرد خدا پیدا میشه کپی کردن لیست به صورت بازگشتی تریس کنه؟
    اگرم وقتشو نداری ولی قصد کمک به منو داری فقط لطف کن یه توضیح مختصر بده که چطوری باید تریسش کنم؟ یعنی اصلا این الگوریتم چطوری کار میکنه، چی به عنوان ورودی میاد، لیست کجا کپی میشیو خلاصه هر چی که فک میکنی لازمه توضیح بده! یه دنیا ممنونم



    function copy (L: LIST): LIST;
    var
    LC: LIST;
    begin
    if ( L = nil) then return (nil);
    new (LC);
    LC^.element :=L^.element;
    LC^.next := copy (L^.next);
    return (LC)
    end;

    آخرین ویرایش به وسیله MIDOSE : پنج شنبه 05 آذر 1388 در 11:12 صبح

  2. #2
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    38
    پست
    387

    Lightbulb نقل قول: کپی کردن لیست به صورت بازگشتی

    توی این کدی که نوشتی کاری که انجام میشه واضحه .
    تابع copy یه ورودی از نوع لیست میگیره که احتمالا اشاره گر به سر لیست یا همون start خودمونه.
    بعد چک میکنه که nil نباشه .(این کار برای تشخیص انتهای لیست انجام میشه) اگر nil بود تابع هم nil بر میگردونه .
    در غیر این صورت یه مقدار توی حافظه برای نود lc ایجاد میکنه . و بعد مقدار ورودی l رو توی lc قرار میده (بخش داده ای) .
    مقدار next مربوط به lc رو مساوی با مقدار برگشتی تابع copy میکنه که برای گره ی بعدی l اجرا شده . دقت کنید که خط زیر این دستور یعنی return (LC) میره توی استک و بعد از پایان کار copy اجرا میشه و با اجرا شدنش آدرس lc برمیگرده به تابع قبلی و قرار میگیره توی lc.next تابع قبلی به همین صورت از آخر به اول .

  3. #3

    نقل قول: کپی کردن لیست به صورت بازگشتی

    فكركنم بجاي LIST بايد مينوشت NODE دراينصورت اين كد يه ليست جديد ميسازه و از گره آخر ليست قبلي شروع ميكنه و گره ها رو به ليست جديد كپي ميكنه.

    0 : يك گره دريافت كن
    1 : اگر گره دريافتي انتهاي ليست بود، مقدار انتهاي ليست را برگردان.
    2 : در غيراينصورت، يك گره جديد بساز و
    3 : مقدار element گره دريافتي را در آن كپي كن
    4 : به خط 0 برگرد و گره next گره دريافتي را بدست بياور، و آن را به اشاره گر next گره جديد پيوند بزن
    5 : گره جديد را برگردان ( در اولين فراخواني،مقدار بازگشتي معادل اولين گره در ليست جديد است)

  4. #4

    نقل قول: کپی کردن لیست به صورت بازگشتی

    لطف کردین ممنونم

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

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