PDA

View Full Version : ساختمان داده ها و طرز بکارگری آن در پروژه ها



hosseinam1370
دوشنبه 11 اسفند 1393, 21:23 عصر
دوستان همونطور که میدونید ، ساختمان داده های مختلفی مثله array , vector , set , list , stak و ... وجود داره ، و بیشتر توابع این کلاس ها شبیه به هم و کارهای شبیه به هم انجام میدن ،
یعنی مثلا همه کارهایی که با vector میشه کرد ، همون کار ها رو با array یا stak یا صف هم میشه کرد ، اینطور که من فهمیدم فقط الگوریتم های این ساختمان داده ها با هم فرق داره،

حالا به غیر از الگوریتم ، دیگه فرقشون چیه !! و چرا باید این همه ساختمان داده با توابع یکسان وجود داشته باشه ، وقتی که میشه حتی از vector برای همه کارها استفاده کرد؟

من تو پروژه هام چطور بفهمم که به کدوم ساختمان داده یا کدوم کلاس نیاز دارم؟تا کدهام بهینه شه؟

در کل میخام تشخیص استفاده از ساختمان داده ها را بفهمم، و از شما دوستان درخاست راهنمایی دارم که تجربیات خودتون انتقال بدید،
تو نت کلی سرچ زدم ولی نتونستم چیزی بفهمم.


با تشکر.

rahnema1
سه شنبه 12 اسفند 1393, 08:17 صبح
سلام
اینطور نیست که هر کاری مثلا با وکتور بشه کرد با ساختمان دیگه هم بشه کرد
ممکنه دو تا ساختمان یک کار مشابه را بتونن انجام بدن اما هزینه انجام همون عملیات در هردو متفاوته
همه این ساختمانها برای این وجود آمده اند که کاربر بتونه با یک دید انتزاعی به حل مساله خودش بپردازه بدون اینکه بخواد به نحوه پیاده سازی این ساختارها دقت کنه و فقط تمرکزش روی حل مساله باشه تا پیاده سازی روش
مثلا میشه گفت استک یک نوع وکتوره که فقط از یک طرف پر و خالی میشه و دسترسی به عناصر اون لیس وجود نداره مگه عنصر بالایی
در واقع کسی که کلاس استک را طراحی کرده اومده یک آرایه را در نظر گرفته و اندیس مثلا آخرین عنصر را همیشه ذخیره می کنه و بعضی خصوصیات دیگه را بهش اضافه کرده. ما هم اگه بخواهیم به جای استک موجود می تونید خودمون با آرایه یک استک پیاده سازی کنیم ولی این کار میشه دوباره کاری
فکر کنم بهتر باشه در خصوص عملکرد هر کدوم مطالعه کنید که از این جور منابع خوشبختانه زیاد پیدا میشه چند تا تمرین از کتابهای ساختمان داده هم حل کنید بیشتر مساله براتون روشن میشه

hosseinam1370
سه شنبه 12 اسفند 1393, 15:19 عصر
با تشکر از شما.
میخاستم بپرسم کتابی نیست که تمامی کتابخونه های c++ یا c و همه این ساختمان داده ها رو توضیح بده و مرجع کاملی برای c++ باشه تا ما دیگه به این سایت : http://www.cplusplus.com/reference
مراجعه نکنیم؟
و فارسی هم باشه؟!!.

چندتا کتاب قومی نژاد رو دارم ، ولی دونه دونه توابع رو گفته ، من همشو یکجا میخام، اگه هست.


با تشکر.

Mahdi.lpr
سه شنبه 12 اسفند 1393, 15:24 عصر
سلام
یک کتاب هست که کتابخونه استاندارد سی پلاس پلاس رو توضیح میده
ولی انگلیسی هست .
میتونی از لینک زیر دانلودش کنی :
http://it-ebooks.info/book/1255/

rahnema1
سه شنبه 12 اسفند 1393, 15:28 عصر
همین آدرس سایت را بگیرید با یه برنامه کلا دانلود کنید