PDA

View Full Version : سوال: قراردادن اطلاعات فایل در لیست پیوندی



shaaadi
چهارشنبه 28 بهمن 1388, 13:38 عصر
یک سوال راجع به لیست پیوندی دارم :
فرض کنید یک جدول در یک فایل متنی داریم ... می خوایم دونه دونه اطلاعاتش رو بخونیم بذاریم تو لیست پیوندی اما هر گره باید بتونه به راست و چپ و بالا و پایین وصل باشه ...
خب خواندن از یک فایل تک تک و از چپ به راسته ! خب چطوری میشه جای پایینی رو بفهمم و اطلاعاتش رو در بالایی بذارم ؟
(فکر کنم خیلی بد توضیح دادم)

مثل این :
a s d f
t x c v
m n b v

مثلا x در یک لیست پیوندی هست و up باید به s اشاره کنه و down به n و ...

shaaadi
چهارشنبه 28 بهمن 1388, 13:43 عصر
در واقع میخوام بدونم هر دفعه باید برای پیدا کردن بالایی و پایینی از اول تا اونجا رو کاراکتر کاراکتر بخونم ؟

qwerty11
چهارشنبه 28 بهمن 1388, 13:52 عصر
سلام،
نه اتفاقاً خوب توضیح دادین.
تو این مسئله شما آرایه ای از لیست پیوندی دارین. برای اینکه بفهمین مثلاً بالایی چیه میتونین لیست بالای خونه ی مورد نظر رو به اندازه ای که تو این سطر هستین پیمایش کنین. اینجوری :


list u = list balayi
node f = u.head;
while(satri ke tush hastim char dare){
BA CHAR BA'DI YE NODE TASHKIL BEDE (NODE n),
f.down=n;
n.up=f;
f=f.next;
}

shaaadi
چهارشنبه 28 بهمن 1388, 14:12 عصر
این طوری که شما گفتین یعنی باید به تعداد سطر ها لیست پیوندی داشته باشم ؟

یعنی اول کل فایل را بخونم بعد یک لیست نهایی درست کنم ؟

qwerty11
چهارشنبه 28 بهمن 1388, 14:18 عصر
اولش فکر کردم باید به تعداد سطرها لیست داشته باشین. اما با یه دونه لیست هم میشه... در واقع وقتی وارد سطر جدید میشیم تنها چیزی که نیاز داریم خونه ی اول سطر بالایی هستش.

همزمان که فایل رو میخونی لیست رو هم میتونی درست کنی.

اگر بخواین اول فایل رو بخونین، میتونین عناصر رو تو یه آرایه ی 2 بعدی ذخیره کنین و بعدش به راحتی لیست رو تشکیل بدین و لینک ها رو ارجاع بدین. البته به نظر من هدف این بوده که همزمان که فایل رو میخونین لیست رو هم درست کنین.

shaaadi
چهارشنبه 28 بهمن 1388, 14:28 عصر
من متوجه نشدم که چه جوری میشه همزمان لیست درست کرد ...(ببخشید که هی میپرسم ... اخه مبتدیم !!!)
اخه اگر هم اولی بالایی رو داشته باشیم پایینی رو چه کار کنیم ؟ یعنی چه جوری به گره پایینی اشاره کنیم ؟

qwerty11
چهارشنبه 28 بهمن 1388, 14:38 عصر
:D
اون کدی رو که گذاشتم ببینی میفهمی کی باید به گره پایین اشاره کنین. فرض کن گره d پایین گره u هستش. وقتی که d رو خوندی u.down رو مساوی d میزاری و d.up رو هم مساوی u . در واقه منظورم اینه که لینک به گره پایین همون موقع که میخونیم انجام نمیشه و وقتی به سطر پایین میریم انجام میشه.

newamir
پنج شنبه 29 بهمن 1388, 10:44 صبح
من راه حلی رو qwerty11 دادن متوجه نشدم.
اگه مشکلی در مصرف حافظه نباشه، میشه ابتدا همه فایل رو توی یه آرایه دو بعدی ذخیره کرد و بعد لیست مورد نظرتون رو به سادگی از روی این آرایه بسازید. چون همواره به همه عناصر دسترسی وجود داره.
ولی اگر بخوایم در مصرف حافظه صرفه جویی کنیم میشه در هر گام فقط یه سطر از جدول رو دخیره شده نگه داشت.