hercool
پنج شنبه 02 دی 1389, 19:00 عصر
با سلام این سوال مربوط به مثالی حل شده در کتاب ساختمان داده هست و من در رابطه با اون مشکل دارم
مثال
لیست پیوندی خطی داریم که در اولین حافظه head وجود دارم و از دومین اندیس عنصر ها قرار میگیرند و اخر به عنصر n ام که دارای اشاره گر null هست ختم می شود
بر روی این لیست قطعه کد زیر اجرا می شود (head به سر لیست اشاره می کند):
list=head->next;
while (list!=null)
{
p=list;
while(p!=null)
{p=p->next;
cout<<"data";
}
list=list->next;
}
اگر لیست n عنصر داشته باشد کلمه data چند بار در خروجی چاپ می شود.
حل:
جواب رو دادن n(n+1)/2 حالا برای من سوال هست چرا این جواب
حالا من پیمایش می کنم منتظر نظر و راهنمایی دوستان هستم
هدر به خانه بعدی اشاره می کند و ان را داخل متغییر لیست قرار می دهد سپس
شرطی قرار می دهیم که تا زمانی که لیست نامساوی صفر هست شرط برقرار باشد
حالا لیست را داخل متغییر p می گذاریم سپس برای p هم هیمن شرط نامساوی صفر را قرار می دهیم
سپس در هر بار که p برابر صفر نبود p یک خانه به جلو برود و داخل متغییر p بریزد یعنی کل خانه ها را تا زمانی که p پر است پیمایش کرده و کلمه data را به خروجی بدهد
سپس بعد از اینکه p به صفر خورد
list به خانه جلو اشاره کند و خود را در داخل متغییر لیست قرار بدهد در کل یک خانه به جلو برود
سوال من اینجاست که p , list هر دو دارند به یک لیست پیوندی اشاره می کنند پس تنها n-1 بار دیتا چاپ می شود نه این مقدرا ممنون میشم راهنمایی کنید؟
مثال
لیست پیوندی خطی داریم که در اولین حافظه head وجود دارم و از دومین اندیس عنصر ها قرار میگیرند و اخر به عنصر n ام که دارای اشاره گر null هست ختم می شود
بر روی این لیست قطعه کد زیر اجرا می شود (head به سر لیست اشاره می کند):
list=head->next;
while (list!=null)
{
p=list;
while(p!=null)
{p=p->next;
cout<<"data";
}
list=list->next;
}
اگر لیست n عنصر داشته باشد کلمه data چند بار در خروجی چاپ می شود.
حل:
جواب رو دادن n(n+1)/2 حالا برای من سوال هست چرا این جواب
حالا من پیمایش می کنم منتظر نظر و راهنمایی دوستان هستم
هدر به خانه بعدی اشاره می کند و ان را داخل متغییر لیست قرار می دهد سپس
شرطی قرار می دهیم که تا زمانی که لیست نامساوی صفر هست شرط برقرار باشد
حالا لیست را داخل متغییر p می گذاریم سپس برای p هم هیمن شرط نامساوی صفر را قرار می دهیم
سپس در هر بار که p برابر صفر نبود p یک خانه به جلو برود و داخل متغییر p بریزد یعنی کل خانه ها را تا زمانی که p پر است پیمایش کرده و کلمه data را به خروجی بدهد
سپس بعد از اینکه p به صفر خورد
list به خانه جلو اشاره کند و خود را در داخل متغییر لیست قرار بدهد در کل یک خانه به جلو برود
سوال من اینجاست که p , list هر دو دارند به یک لیست پیوندی اشاره می کنند پس تنها n-1 بار دیتا چاپ می شود نه این مقدرا ممنون میشم راهنمایی کنید؟