این درس به معرفی ساختماندادهها و الگوریتمها شامل نحوه طراحی، تحلیل و پیادهسازی آنها میپردازد. ساختماندادهها یا داده ساختارها از بنیادیترین مفاهیم مورد نیاز برای یادگیری علوم کامپیوتر هستند. از این جهت ساختماندادهها، یک درس ... ادامه
این درس به معرفی ساختماندادهها و الگوریتمها شامل نحوه طراحی، تحلیل و پیادهسازی آنها میپردازد.
ساختماندادهها یا داده ساختارها از بنیادیترین مفاهیم مورد نیاز برای یادگیری علوم کامپیوتر هستند. از این جهت ساختماندادهها، یک درس مهم پایهای دانشگاهی و دارای نکات فراوانی است که پیشنیاز دروس مختلفی در رشته کامپیوتر است.
در علم کامپیوتر، یک ساختمانداده هنر سازمان دادن به دادهها، مدیریت و قالببندی ذخیره دادهها است که امکان دسترسی و تغییر کارآمد دادهها را فراهم میکند. به شکل دقیقتر، یک ساختمانداده مجموعهای از مقادیر داده، ارتباط بین آنها، عملگرها و توابعی است که بر روی دادهها اعمال میشود. این سازمان دادن به دادهها در کنار یکدیگر از طریق یک مدل منطقی، ریاضی یا شکل خاص انجام میگیرد. بدین شکل، ساختماندادهها توانمندی مدیریت حجم بسیاری بالایی از دادهها را به شکل مؤثر برای استفادههایی نظیر پایگاههای داده بزرگ و سرویسهای جستجوی اینترنت، نظیر کاری که گوگل انجام میدهد، را برای ما فراهم میکنند. معمولاً، ساختمانهای داده کارا، راهبرد اصلی طراحی الگوریتمهای کارا هستند.
انواع مختلفی از ساختمانهای داده نظیر آرایهها، لیستهای پیوندی، صف، پشته، درختها، گرافها و جداول درهمسازی وجود دارند که هر یک برای کاربردهای مختلفی مناسب هستند. برخی از آنها کاربردهای عمومی و برخی کاربردهای بسیار خاص دارند. در این درس ساختمانهای داده عمومی مورد بحث و پیادهسازی قرار گرفتهاند.
بدین منظور، هر ساختمانداده در قالب یک نوع داده انتزاعی یا Abstract Data Type (ADT) ارائه میشود که یک نوع داده و شکل منطقی آن را در اختیار ما قرار میدهد. این طراحی انواع داده، خود زمینهای را برای طراحی نرمافزار ایجاد میکنند.
پیادهسازی ساختمانهای داده این دوره، بر اساس زبان جاوا انجام گرفتهاست. از این جهت پیشنیاز این دوره آشنایی اولیه با زبان جاوا و مفاهیم اولیه شیگرایی است.
*****فایلهای کد منبع مورد استفاده و فیلم نحوه استفاده از کدهای منبع (Source Code) در جلسه آخر قرار داده شدهاست*****
اطلاعات بیشتر
از مجموع 15 امتیاز
6 نظردکتر رسول اسماعیلیفرد دکترای خود را در رشته مهندسی کامپیوتر از دانشگاه صنعتی اصفهان دریافت نمودهاست. ایشان در حال حاضر استادیار دانشکده مهندسی کامپیوتر دانشگاه صنعتی شیراز است. زمینههای تحقیقاتی مورد علاقه ایشان معماری نرمافزار و مدیریت جمعیت در شبکه است.
اطلاعات بیشتر