ورود

View Full Version : سوال: حل یک تست مربوط به لیست پیوندی



bahar1370
شنبه 26 شهریور 1390, 23:47 عصر
سلام
while(p<>nil) begin
r=q
q=p
p=p.^link
q.^link=r

این الگوریتم معکوس کردن لیست پیوندی تو یک کتاب خوندم که 2 خط اخرش قابلیت جابجایی نداره ولی هرچی من روی کاغذ مراحلش ترسیم می کنم فرقی نداره جابه جایی..........؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!! !!!!!!!!1


ممنون.

مسعود اقدسی فام
یک شنبه 27 شهریور 1390, 00:10 صبح
خط دوم باعث می‌شه اشاره‌گر p و q به یه محل اشاره کنن. خط سوم باعث می‌شه اشاره‌گر p یه گره جلوتر بره، و بعد لینک q برابر r قرار داده می‌شه. حالا اگه جای اون دو سطر رو عوض کنی، یعنی قبل از حرکت دادن p، لینک q را مقدار دهی می‌کنی. مگر نه اینکه p و q به یه محل اشاره دارن؟ پس ناخودآگاه محل اشاره p هم دستخوش تغییر می‌شه و کلا لیست پیوندی و الگوریتم به هم می‌خوره.
حرکت دادن اشاره‌گر p به سمت جلو باعث می‌شه p و q به دو محل مختلف اشاره کنن. در نتیجه تغییراتی که روی محل q داده می‌شه، روی محل p اثری نمی‌ذاره.

bahar1370
یک شنبه 27 شهریور 1390, 11:39 صبح
من هنوز مشکل دارم با این موضوع

bahar1370
یک شنبه 27 شهریور 1390, 12:28 عصر
ممنون حل شد