آقا متشکرم خیلی بدردم خورد.2 تا سوال ها رو تونستم حل کنم.
فقط یه سوال: اگه بخواهیم 2 تا لیست پیوندی تعریف کنیم اون موقع باید چیکار کنیم؟چون یکی از سوال ها چک کردن برابری 2تا لیست پیوندیه.
متشکرم
آقا متشکرم خیلی بدردم خورد.2 تا سوال ها رو تونستم حل کنم.
فقط یه سوال: اگه بخواهیم 2 تا لیست پیوندی تعریف کنیم اون موقع باید چیکار کنیم؟چون یکی از سوال ها چک کردن برابری 2تا لیست پیوندیه.
متشکرم
خوشحالم که مشکلت حل شد
در مورد سوالت کلاسش و که تعریف کردی حالا دو تا متغیر از نوع کلاسش تعریف کن مثلا توی بدنه اصلی برنامت بنویس
LinkedList a,b;
اینجوری دو تا لیست پیوندی داری یکی a و یکی هم b
دستت درد نکنه. میشه تابعی برای چک کردن برابری این دولیست رو بنویسید؟
ببین نوشتن این جور برنامه ها یعنی نوشتن پروژه که خلاف قوانین هستش و باور بکن به ضرر خودته ولی این یکی و نوشتم البته کلاسش رو نه تابع - سعی کن حتما خودتم یه بار بدون اینکه برنامه من و نگاه کنی بنویسیش
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by Mehran NZ; 02-12-2008 at 19:42.
خیلی خیلی متشکرم. فقط این عبارت rootA=a.getRoot(); رو میشه یک توضیح مختصر بدهید؟
خودم فکر میکنم که به خاطر این باشه که آدرس اولین خونه (root) لیست پیوندی در متغیر قرار میده تا بعدا برای عمل مقایسه کردن از ابتدای لیست پیوندی شروع بکنه.
درسته؟
Last edited by nimja; 02-12-2008 at 20:29.
کاملا درسته
و اگه دقت کنی برای بدست اوردن ریشه لیست پیوندی مجبور شدم که یه تابع جدیدیعنی getRoot رو برای لیست پیوندی تعریف کنم که متغیر root روبگیره
درتابع isEqual هم می تونی tempA,tempB رو تعریف نکنی و مستقیما از rootA,rootB استفاده کنی ولی خوب اینجوری بنظرم درکش راحت تر هست
بعد یه چیز مهم دیگه در اینجا هر دو تا لیست سه مقدار می گیرن اگه نمی دونی که اندازه های دو تا لیستت یکی هستند یا نه می تونی از لیست پیوندی دارای سر لیست استفاده کنی و در همون اول تابع ازش استفاده کنی که اگه تعداد خونه های دولیست با هم برابر نبودند return 0; روبر گردونی که یعنی دو لیست برابر نیستند که البته همون طور که می دونی اینجور لیست پیوندی یکم بیشتر برنامه نویسی می خواد
این هم لیست پیوندی دارای سرلیست
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یکی از سوال ها این هست که لیست پیوندیه B رو به انتهای لیست A وصل کنه. من برنامه اونو این طور نوشتم.
ولی موقعی که میخواهم لیست A رو نمایش بده دیگه لیست B رو نشون نمیده
فکرکنم اشکال از این قسمتش باشه:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by nimja; 04-12-2008 at 12:56.
بله اشکال از همون قسمت هست در ضمن این تابع رو دلیلی نداره بصورت int تعریف کنی چون قرار نیست چیزی رو برگردونه فقط دوتا لیست و پیوند می ده و تمام پس بهتره که void تعریف بشه
ببین تو الان باید اول از ریشه a حرکت کنی تا برسی به اخرین خونش بعد در اخرین خونه فیلد next رو بجای NULL به اولین خونه (ریشه ) b پیوند بدی اینجوری b خود بخود به a پیوند می خوره
من برنامت و درست کردم (به شرط پایان حلقه while یه دقت ویژه داشته باش)
برنامه ای که شما نوشتی تا اخر لیست و میره tempA رو نول می کنه بعد اون و برابر دومین خونه b می کنه (و دراخرین خونه a هم هیچ تغییری بوجودنمیاره) مثلا توی برنامه ی خودت من یه تکه کد کوچیک اضافه کردم که مقدار tempA رو در اخر نشون بده- اگه برای a مقادیر 1-2-3 و برای b مقادیر 4-5-6 وارد کنی می بینی که tempA برابر عدد 5 می شهکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by Mehran NZ; 04-12-2008 at 14:28.
برای اینکه بخواهیم جای 2تا گره رو عوض کنیم بدون اینکه به info دست بزنیم.باید از 4 تا اشاره گر استفاده کرد؟
میشه یک روش کار رو توضیح دهید؟
ممنونم
خوب این هم کاری نداره شکلش و برات کشیدم بالایی باید به پایینی تبدیل بشه ببین کجاش گنگه توضیح بدم
![]()
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)