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

نام تاپیک: درج و حذف ازلیست پیوندی

  1. #1

    Smile درج و حذف ازلیست پیوندی

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

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    نقل قول: درج و حذف ازلیست پیوندی

    سلام:
    این خواسته شما در حد مکی نیست که کلا همه جزئیات رو براتون بیارم ولی راهنمائیتون میکنم بهر حال خودتون بکار بگیرید.
     
    void *FirstLink;
    void *LastLink;
    typedef struct MyLinkList
    {
    void *NextLink;
    void *PrevLink;
    char *Data;
    }MyLink;


    1- با دستور new یه ساختار از حافظه بگیرید و آدرس اون رو داخل FirstLink قرار بدید.
    2 - حالا شما اولین لینک که نقطه شروع است رو دارید و برای اینکه معلوم بشه فعلا قبل و بعد از این لینک هیچ لینکی قرار نداره بصورت زیر عمل کن
     
    MyLink *mylink;
    FirstLink = (void *)new char[sizeof(mylink)];
    mylink = (MyLink *)FirstLink;
    mylink->NextLink = NULL;
    mylink->PrevLink = NULL;
    LastLink = FirstLink;

    3 - در فوق اولین لینک رو دارید حال به روش فوق با new دومین لینک رو ساخته و بصورت زیر جاگذاری کنید
     
    mylink = (MyLink *)LastLink;
    mylink->NextLink = (void *)new char[sizeof(mylink)];
    mylink = (MyLink*)mylink->NextLink;
    mylink->NextLink = NULL;

    در اینجا آدرس PrevLink ساختار جدید رو با لینک قبلی وصل کنید
     
    mylink->PrevLink = (void)LastLink;
    LastLink = (void*)mylink;

    به همین تر تیب با کمی تغییر میتونید یه سلسله لینک رو بهم وصل کنید
    حالا با توجه به آدرسها و محل دقیق ساختارها توی حافظه میتونی عملیات خذف و درج رو روش انجام بیدی.
    آسون نیست ولی کدهای بالا کمکتون میکنه.
    موفق باشید...

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

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