تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 3 از 3 اولاول 123
نمايش نتايج 21 به 21 از 21

نام تاپيک: درخواست کمک برای کلاس لیست

  1. #21
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    با توضیحاتی که داده بودید، یک نمونه ساده حاضر کردم، نمیدانم چقدر به چیزی که میخواهید شبیه است.
    نمونه دو کلاس با نام CNode و CArrayList دارد.

    هر گره میتواند شامل تعداد نامحدودی زیر گره باشد که به صورت پیوندی نگاه داشته میشود.
    یعنی هر گره یک پیوند از گره والد و یک پیوند از اولین گره فرزند و یک پیوند از گره بعدی خودش در لیست والد دارد.

    متد Insert هم وجود دارد که اگر آرگومان index صفر داده شود در اول گره و اگر هم 0x7fffffff داده شود در آخر گره میتواند Insert کند و در محل خاص و مشخص هم که میتواند Insert کند.

    اپراتور [] هم باز تعریف شده تا در هر گره بتوانید با ایندکس به زیر گره هایش دسترسی داشته باشید، همچنان از 0x7fffffff میتوانید برای دسترسی به آخرین گره استفاده کنید.

    =====

    خود کلاس CNode مجهز به متدی به نام RefreshFarList است که میتواند لیست گره های غیر مجاور برای همه گره ها تولید و refresh کند و در متغییر m_NFar نگاه دارد.
    برای ذخیره لیست گره های غیر مجاور از CArrayList به جای لیست پیوندی استفاده است.
    (اگر لیست گره های غیر مجاور هم با لیست پیوندی انجام میشد کلاس CArrayList هم نیازی نبود ولی اینطوری به نظرم بهتر و پربازده تر است)

    میتوان مجدد گره های جدید را در محل های دلخواه درج (Insert) کرد و در نهایت با اجرای متد RefreshFarList از یکی از گره ها، لیست گره های غیر مجاور همه درخت بازتولید و refresh میشود.

    =====

    لازم به ذکر است که من تاپیک را درست مطالعه نکردم و فقط با توضیحات خودتان این را نوشتم و نمیدانم چقدر به چیزی که میخواستید نزدیک است.
    شاید نیاز نباشد بگویم که کدها با VC++2008 نوشته و تست شده اند، هم کامپایل بدون خطا و هشدار انجام شده و هم تست عملی با 5 گره تو در تو نمونه درست جواب داد.

    =====

    کد به راحتی قابل تبدیل به C#.Net و VB.Net است و اگر دوستان تمایل داشتند و وقت داشتم میتوانم نمونه دقیقاً مشابه این دو زبان را هم قرار دهم.

    موفق باشید.

  2. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است

    MIG

صفحه 3 از 3 اولاول 123

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •