PDA

View Full Version : آموزش درس ساختمان داده ها



MTD_GOLD
دوشنبه 05 مرداد 1388, 21:29 عصر
http://img.tebyan.net/Small%5C1386%5C12%5C243492095413611579541921672051 77170120073.jpg (http://www.tebyan.net/BigImage.aspx?img=http://img.tebyan.net/Big%5C1386%5C12%5C24349209541361157954192167205177 170120073.jpg)
این برنامه یک آموزش است که توسط یکی از کاربران سایت ساخته شده است. این آموزش مربوط به واحد درسی ساختمان داده ها در رشته کامپیوتر می باشد. این آموزش شامل مباحثی مانند ماتریس ها ، پشته و صف ، لیست های پیوندی می باشد. همچنین برنامه دارای یک آزمون برای سنجش دانشجو است. راهنمای کار با برنامه نیز اضافه شده است. کیفیت طراحی بسیار خوب بوده و کار با محیط آن ساده می باشد. ظاهرا این نرم افزار آموزشی با استفاده از برنامه Adobe Captivate با فرمت فلش طراحی شده است. کاربران دیگر هم می توانند آموزشهای مورد نظر خود را با چنین برنامه هایی ساخته و برای ما ارسال کنند تا بر روی سایت قرار گیرد. نظرات خود را در جهت بهبود برنامه در بخش نظرات مرقوم بفرمائید.
لینک:
http://dnl.tebyan.net/NewDownload_Files/Data_Structure_1252.exe

منبع:www.tebyan.net

MTD_GOLD
دوشنبه 05 مرداد 1388, 22:18 عصر
ساختمان داده چیست؟


در اصطلاح کامپیوتری، ساختمان داده به روشهایی از ذخیره اطلاعات گفته می شود که برای استفاده بهینه از اطلاعات ذخیره شده اتخاذ می شود. غالباً انتخاب یک ساختمان داده موجب ایجاد الگوریتم (الخوارزمی) های متناسب با آن خواهد شد که این دو در کنار هم موجب افزایش سرعت انجام یک وظیفه یا کاهش مصرف حافظه برای پردازش داده می شود؛ سنگ بنای ساختمان های داده انواع داده و اشاره گرهای گوناگون است. که با توجه به چگونگی تعریف کاربرد آنها در هر زبان برنامه نویسی پیاده سازی آنها متفاوت خواهد بود. ما اکنون به پیاده سازی ساختمان های داده نمی پردازیم بلکه به توضیح انواع داده موجود در زبان پایتون می پردازیم؛ به دلیل سطح بالای این زبان انواع داده موجود در آن دارای ساختار پیچیده ای هستند که باعث شد ما از این انواع به عنوان ساختمانهای داده یاد کنیم.
در زبان های سطح پایین تر که اکثر آنها از پایه های پایتون به حساب می آیند انواع داده پیش فرض انواعی ابتدایی هستند که در زبان اسمبلی نیز قابل تعریف هستند. مثلاً در زبان C از انواع int , char,float, double, long ,short استفاده می شود که همه آنها دارای خاصیتی مشترک هستند و این خاصیت این است که بر روی پردازنده به طور مستقیم دارای دستور العمل هایی هستند که می توان با آنها کار کرد. همچنین برای ایجاد یک زنجیره(آرایه) از این انواع از علامت "[]" استفاده می شد، ولی از این انواع داده غیر از عملیات ریاضی کاری بر نمی آید ، مگر اینکه از آنها با قرار دادهای خاصی ساختمان داده هایی بسازیم.
انواع ساختمان داده در پایتون



یکی از مهمترین و پرکاربرد ترین این ساختمان های داده رشته (http://www.pylearn.com/fa/wiki/index.php/%D8%B1%D8%B4%D8%AA%D9%87) های کاراکتری می باشند که در واقع یک زنجیره (Sequence) از بایت ها می باشند که در کار با ورودی ها، خروجی ها و ارتباطات گوناگون نقش مهمی ایفا می کنند، زیرا یکی از راههای محدود فهم انسان از دنیای کامپیوتر ارتباط متنی با این جهان می باشد.
دبگر ساختمان داده ای مهم در این زبان لیست ها (آرایه ها) هستند. در واقع این نوع داده یک نوع بسیار پیشرفته از آرایه های زبانهای سطح پایین است که علاوه بر خاصیت اندیس پذیری ، خاصیت تغییر اندازه و نگهداری انواع داده را بطور هم زمان دارا می باشد.
چند تایی های مرتب (Tuple)در پایتون نوعی از داده با شباهت هایی به لیست می باشد که در بخش مربوطه به تفاوت ها و شباهت های این دو نوع خواهیم پرداخت.
یک نوع دیگر داده در پایتون چرخنده(Iterator)است که به عنوان یک فریم یا واحد چرخنده در طول لیست ها ، چند تایی ها و رشته ها محسوب می شود.



ساختمان داده های دیگر

در جملات فوقالذکر مشاهده کردید که ما با تعداد محدودی ساختمان داده روبرو هستیم. اما ما مجبورنیستیم که با این ساختمان داده ها بسوزیم و بسازیم. بلکه این ساختمانهای داده سنگ بنای چندین ساختمان داده دیگر هستند که هر کدام کاربرد و پیچیدگیهای خاص خود را دارند از آنجمله می توان موارد زیر را نام برد:


لیست های پیوندی

یکطرفه
دوطرفه
حلقوی


صف ها

صف های دو طرفه
صفهای با اولویت


درختها

دودویی
دودویی جستجو
درختهای دو-سه


heap

Deap
MinMax Heap



.....

MTD_GOLD
دوشنبه 05 مرداد 1388, 22:24 عصر
خلاصه ای از مطالب دستنویس- یک تحقیق به عنوان کار کلاسی (http://data-structure.blogfa.com/post-21.aspx)

خلاصه ای از فصل آخر و همچنین کل بحث ساختمان داده ها و برخی تستهای حل شده را می توانید از لینکهای زیر دانلود نمایید خلاصه برخی مباحث ساختمان داده ها (http://gholypur.googlepages.com/ds_summary.pdf) خلاصه فصل آخر (http://gholypur.googlepages.com/sort_summary.pdf) برخی تستهای حل شده (http://gholypur.googlepages.com/testdatastructure.pdf)
در جلسه آخر و بررسی سوال هوشمندانه یکی از دانشجویان مشخص شد که جواب الگوریتم پریم برای یافتن درخت پوشای کمینه به انتخاب گره اولیه بستگی دارد و ممکن است دو انتخاب به دو جواب متفاوت منجر شود. به نظر می رسد که می نیمم حاصله از الگوریتم پریم مینیم مطلق نباشد. در این صورت مینیمم محلی (local minimum) خواهد بود. شاید در وهله اول به نظر برسد که باید الگوریتم پریم را برای تمام گره ها به عنوان گره شروع اجرا کرد. این روش خود هزینه زمانی زیادی را طلب می کند. لطفا با جستجو در اینترنت و انجام یک تحقیق مشخص کنید که آیا الگوریتم جامع تری از پریم برای یافتن می نیمم مطلق وجود دارد یا نه؟