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

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




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 14

نام تاپيک: مشکل این برنامه چیه ؟ لیست های پیوندی

  1. #1
    آخر فروم باز aaaammmm87's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ♥♥♥♥♥♥♥
    پست ها
    1,860

    پيش فرض مشکل این برنامه چیه ؟ لیست های پیوندی

    سلام
    این برنامه واسه گرفتن اسامی دانشجویان به صورت لیست پیوندی هستش ولی لیست کردن و جستجوش کار نمیکنه ؟ نمیدونم چرا ؟
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by aaaammmm87; 01-07-2009 at 15:28.

  2. #2
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    سلام خسته نباشید.
    خط :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    رو پاک کن.
    ببخشید فکر کنم تایپتونو نخوندم معذرت میخوام اشتباه شد.
    موفق باشید.

  3. #3
    آخر فروم باز aaaammmm87's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ♥♥♥♥♥♥♥
    پست ها
    1,860

    پيش فرض

    سلام خسته نباشید.
    خط :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    رو پاک کن.
    ببخشید فکر کنم تایپتونو نخوندم معذرت میخوام اشتباه شد.
    موفق باشید.
    دوست عزیز اصلا هیچ ربطی به اون خط نداره اینو INCLUDE کردم واسه اینکه تابع NULL شناسایی بشه

  4. #4
    اگه نباشه جاش خالی می مونه roya_borhany's Avatar
    تاريخ عضويت
    Feb 2009
    محل سكونت
    کره زمین
    پست ها
    206

    پيش فرض

    سلام. به نظرت تعریف لیست پیوندی و اشاره گر اشتباه نیست؟ تا اون جایی که یادمه از typedef باید استفاده کرد:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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


  6. #5
    آخر فروم باز aaaammmm87's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ♥♥♥♥♥♥♥
    پست ها
    1,860

    پيش فرض

    سلام. به نظرت تعریف لیست پیوندی و اشاره گر اشتباه نیست؟ تا اون جایی که یادمه از typedef باید استفاده کرد:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    نوچ تعریفم درسته مشکلی نداره .

  7. #6
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    دوست عزیز اصلا هیچ ربطی به اون خط نداره اینو INCLUDE کردم واسه اینکه تابع NULL شناسایی بشه
    کي گفته بايد براي NULL اين رو include کني ؟

  8. #7
    حـــــرفـه ای sin2x=2sinxcosx's Avatar
    تاريخ عضويت
    Dec 2007
    پست ها
    2,234

    پيش فرض

    مشکلتون اينجاست که مثلا وقتي ميخواد ليست کنه نمي تونه تشخيص بده که بعدي NULL هست يا نه . ما فقط يه نفر داريم ولي باز هم بعد از اين که اونو چاپ کرد از شرط temp != NULL رد ميشه .

  9. #8
    داره خودمونی میشه DaneshD's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Sweden
    پست ها
    196

    پيش فرض

    مشکل اینه که شما student *temp=new student; رو درون هر تابع تعریف کردید. در اینصورت وقتی در تابع input شما یک لیست پیوندی میسازید، وقتی از تابع خارج میشید اون لیست دیگه وجود نداره (درواقع طبق کد شما داره چون اونرو delete نکردید اما آدری اون گم شده) و دوباره شما یک لیست جدید در هردو تابع output و search میسازید با دستور student *temp=new student;

    برای اصلاح این خط رو

    student *temp;

    خارج از تمام تابع ها تعریف کنید تا برای تمام توابع به صورت global باشه و فقط یکبار این دستور

    student *temp=new student;

    رو در تابع input اجرا کنید تا فقط یکبار لیست ساخته بشه چون در هنگام جستجو و نمایش لیست نیازی به ساختن دوباره اون نیست. در ضمن در آخر برنامه خودتون حتما لیست ساخته شده رو delete کنید تا memory leak که به معنی گرفتن و رها نکردن حافظه هست، براتون پیش نیاد.

  10. #9
    آخر فروم باز aaaammmm87's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ♥♥♥♥♥♥♥
    پست ها
    1,860

    پيش فرض

    کي گفته بايد براي NULL اين رو include کني ؟
    مشکلتون اينجاست که مثلا وقتي ميخواد ليست کنه نمي تونه تشخيص بده که بعدي NULL هست يا نه . ما فقط يه نفر داريم ولي باز هم بعد از اين که اونو چاپ کرد از شرط temp != NULL رد ميشه .
    مشکل اینه که شما student *temp=new student; رو درون هر تابع تعریف کردید. در اینصورت وقتی در تابع input شما یک لیست پیوندی میسازید، وقتی از تابع خارج میشید اون لیست دیگه وجود نداره (درواقع طبق کد شما داره چون اونرو delete نکردید اما آدری اون گم شده) و دوباره شما یک لیست جدید در هردو تابع output و search میسازید با دستور student *temp=new student;

    برای اصلاح این خط رو

    student *temp;

    خارج از تمام تابع ها تعریف کنید تا برای تمام توابع به صورت global باشه و فقط یکبار این دستور

    student *temp=new student;

    رو در تابع input اجرا کنید تا فقط یکبار لیست ساخته بشه چون در هنگام جستجو و نمایش لیست نیازی به ساختن دوباره اون نیست. در ضمن در آخر برنامه خودتون حتما لیست ساخته شده رو delete کنید تا memory leak که به معنی گرفتن و رها نکردن حافظه هست، براتون پیش نیاد.
    تابع NULL توی این تابع هست . میتونی از MSDN خود C استفاده کنی و ببینی !
    ************************************************** **********
    قاعدتا باید تشخیص بده که بعدی NULL هستش چون که من با دو اشاره گر FIRST , LAST اول و اخر رو مشخص میکنم !
    ************************************************** **********
    دوست عزیز ممنونم از توضیحتون ولی اگه توجه کنی من هر بار که یه TEMP می سازم فقط از اون برای ایجاد یه گره جدید ازش استفاده میکنم و طبق FIRST , LAST حرکتم رو ایجاد میکنم که این باید درست باشه ( الگوریتمی) !
    دوست عزیز شما میتونید اینو درستش رو بنویسید ؟ ؟ ؟ ؟

  11. #10
    داره خودمونی میشه DaneshD's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Sweden
    پست ها
    196

    پيش فرض

    کد اصلاح شده

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    فکر کنم فقط روتین input رو تغییر دادم که آدرسها در هنگام اضافه کردن گم میشدن و آخرین رکورد هم به NULL اشاره نمیکرد. این دو خط رو در ابتدای main اضافه کن که اشاره گرها مقدار اولیه NULL داشته باشند:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

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

User Tag List

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

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