دانلود 1 جزوه ساختمان داده ها
دانلود 1 جزوه ساختمان داده ها
فایل مورد نظردر قالب pdf با حجم 834 کیلوبایت می باشد. دوستان گرامی و دانشجویان ارجمند و عزیز در صورت تمایل می توانید این فایل بسیار با ارزش را به صورت مستقیم از سایت بیست میشم تهیه بفرمائید.
مفاهیم عمده در علوم رایانه
آموزش ساختمان داده ها
دانلود 1 جزوه ساختمان داده ها بیان میدارد ساختمان داده ها، یکی از دروس مهم و پایه ای دانشگاهی است که پیش نیاز دروس مختلف رشته کامپیوتر است و به عنوان مبحثی که نکات فراوانی دارد، در کنکور کارشناسی ارشد کامپیوتر و کنکور دکتری هوش مصنوعی و نرم افزار از دروس با ضرایب بالا می باشد.
دانلود 1 جزوه ساختمان داده ها
فهرست سرفصل ها
- بخش یکم: مرتبه اجرایی
- نشان گذاری
- مرتبه اجرایی حلقه ها
- بخش دوم: زیربرنامه های بازگشتی
- زیر برنامه بازگشتی
- زیر برنامه های بازگشتی معروف
- بخش سوم: آرایه
- آرایه
- نحوه ذخیره عناصر آرایه در حافظه
- جستجو در آرایه (خطی – دودویی)
- اضافه و حذف در آرایه
- پیدا كردن عنصر كمینه در آرایه
- انواع ماتریس (اسپارس- مثلثی-3 قطری)
- بخش چهارم: صف و پشته
- صف
- درج و حذف در صف ساده
- صف حلقوی
- درج و حذف در صف حلقوی
- پشته و عملیات Push و Pop
- ارزشیابی عبارات (تبدیل Infix و Prefix و Postfix به یكدیگر)
- بخش پنجم: لیست پیوندی
- لیست پیوندی یک طرفه
- الگوریتم های کار بر روی لیست پیوندی یک طرفه (اضافه و حذف گره، اتصال، وارون و….)
- پیاده سازی پشته با لیست پیوندی
- پیاده سازی صف با لیست پیوندی
- لیست پیوندی دو طرفه
- لیست پیوندی حلقوی
- چند جمله ای ها
- لیست عمومی
- بخش ششم: درخت
- تعاریف اولیه
- درخت دودویی (كامل، پر)
- درخت k تایی
- درخت دودویی کامل شماره گذاری شده
- روش های ذخیره درخت دودویی
- تعداد درخت های دودویی
- الگوریتم های کار بر روی درخت دودویی
- پیمایش درخت دودویی
- درخت نخی دودویی
- درخت عمومی
- جنگل
- درخت دودویی گسترش یافته (2-Tree)
- درخت جستجوی دودویی (BST)
- عملیات بر روی یك BST
- هرم (Heap)
- صف اولویت
- Deap
- Treap
- Min-Max
- بخش هفتم: گراف
- گراف
- انواع گراف
- نمایش گراف
- پیمایش گراف
- درخت پوشا
- الگوریتم کراسکال (Kruskal’s algorithm)
- الگوریتم پریم (Prim’s algorithm)
- بخش هشتم: مرتب سازی
- مرتب سازی
- الگوریتم مرتب سازی حبابی
- الگوریتم مرتب سازی انتخابی
- الگوریتم مرتب سازی درجی
- الگوریتم مرتب سازی ادغامی
- الگوریتم مرتب سازی سریع
- الگوریتم مرتب سازی هرمی
- درخت تصمیم گیری
- بخش نهم: درهم سازی
- جدول آدرس دهی مستقیم
- جدول های درهم سازی
- برخورد
- توابع درهم سازی
- ضریب بارگذاری
- روش زنجیره ای برای حل برخورد
- آدرس دهی باز
- درهم سازی پویا
دانلود 1 جزوه ساختمان داده ها
در مورد ساختمان داده
درس ساختمان داده بنیادی ترین درس رشته کامپیوتر و حتی یکی از بنیادی ترین درسهای بسیاری از رشتههای علوم پایه و مهندسی است.
هدف درس ساختمان داده بررسی و پژوهش در مورد روشهای گوناگون ذخیره، نگهداری و بازیابی اطلاعات در سیستمهای کامپیوتری است، به گونهای که این اطلاعات بتواند بطور کارامد مورد استفاده قرار گیرد.
برای تمامی دانشجویانی که علاقهمند به کارهای پژوهشی یا دادن الگوریتمهای بهینه برای مسائل و چالشهای موجود و یا برنامه نویسی هستند، داشتن دانش ساختمان دادهها و الگوریتمها باعث داشتن یک نگاه ویژه و متفاوت به حل مسائل است، و داشتن این نگاه دانش پژوهان را در آینده کاری و تحصیلی شان نسبت به دیگران متفاوت خواهد کرد.
داشتن دانش کافی در مورد درس ساختمان دادهها باعث میشود که دانش پژوهان بتوانند بررسی کنند که آیا راه حلهایی که ارائه میدهند از جوانب گونانونی مانند مرتبه زمانی، میزان حافظه مصرفی، قابلیت توسعه، میزان مصرف توان و …بهینه هستند یا خیر.
دانلود 1 جزوه ساختمان داده ها
ساختمان داده چیست
یک برنامه تشکیل شده از یکسری داده های ورودی، که برنامه ما یک الگوریتمی را روی داده های ورودی اجرا میکند و سپس داده های خروجی برای ما تولید میکند.
بعنوان مثال ما برنامه ای داریم که لیست دانشجویان یک کلاس را به آن میدهیم و برنامه ما طبق الگوریتمی که برایش مشخص کرده ایم افرادی که معدل شان بالای 18 است را به ترتیب برای ما مشخص میکند.
الگوریتم روی داده ها کار میکند و آنها را پردازش میکند (در واقع الگوریتم ما بر روی داده ها اجرا میشود)، برای اینکه بتوانیم این امکان را برای الگوریتم فراهم کنیم تا راحت تر بتواند دادهها را پردازش بکند باید بتوانیم دادهها را به شکل مناسب ذخیره سازی یا سازماندهی کنیم.
درسی که هنر ذخیره سازی مناسب داده ها را به ما یاد میدهد ساختمان داده ها است، در واقع ما در ساختمان داده سعی میکنیم که ساختار دادههای گوناگون با ویژگیهای مختلف را تعریف کنیم.
هدف اصلی درس ساختمان داده و طراحی الگوریتم ارائه مبانی نظری مورد نیاز برای کسب مهارت لازم در حل مسئله (Problem Solving) به کمک کامپیوتر است،
یک مهندس کامپیوتر و آی تی و یا فردی که برنامه نویسی میکند در طول تحصیل خود باید توانایی حل مسائل مختلف به کمک زبانهای برنامه نویسی را فرا بگیرد و در واقع باید بتواند برنامههای مناسبی برای حل مسائل مختلف بنویسد.
هر برنامه از دو بخش تشکیل میشود که عبارت اند از:
1) ساختمان داده یا ساختمان داده های در نظر گرفته شده برای الگوریتمهای برنامه مان
2) الگوریتم هایی که روی داده ها اجرا میشوند
ساختمان داده ها برای دریافت دادهها توسط کامپیوتر جهت پیاده سازی و اجرای الگوریتمها مورد استفاده قرار میگیرند، اما الگوریتمها دستورالعملهایی هستند که بر روی دادهها اعمال میشوند.
برنامهای خوب است که هم ساختمان داده مناسبی داشته باید و هم از الگوریتمهای بهینه تری استفاده کند.
بعنوان مثال فرض کنید میخواهید برنامهای بنویسید که 50 عدد صحیح از ورودی بگیرد و آنها را مرتب کند و در خروجی نمایش دهد، در این مثال بهترین ساختمان دادهای که میتوانیم استفاده کنیم آرایه است (چون تعداد اعداد ورودی ثابت و مشخص است)، اما برای مرتب کردن این اعداد میتوانیم از الگوریتمهای مختلفی نظیر مرتب سازی حبابی (Bubble Sort)، مرتب سازی درجی (Insertion sort)، مرتب سازی سریع (Quick Sort)، مرتب سازی انتخابی (Selection Sort) و یا دیگر الگوریتمهای مرتب سازی استفاده کرد.
همان طور که گفتیم الگوریتمی که برای یک برنامه نوشته ایم روی داده ها کار میکند و آنها را پردازش میکنند، برای اینکه بتوانیم این امکان را برای الگوریتم فراهم کنیم تا راحت تر بتواند دادهها را پردازش بکند باید بتوانیم دادهها را به شکلی مناسب و مختص آن الگوریتم ذخیره سازی یا سازماندهی کنیم، برخی از ساختمان های داده برای پردازش بهتر و سریعتر داده مناسب است، برخی دیگر برای ذخیرسازی بهتر داده مناسب هستند، برخی از ساختمان داده ها، داده ها را بصورت فشرده تری ذخیره میکند. درس ساختمان داده به ما میآموزد که برای هر الگوریتم و برنامه ای چه ساختمان داده ای مناسب تر است.
ساختمان داده (Data Structure) چگونگی آرایش دادهها در حافظهی کامپیوتر را مشخص میکند. هر ساختمان داده بسته به طراحی و هدفی که دنبال میکند، الگوریتمهای ویژهای به منظور بازیابی، ذخیره سازی و حذف دادهها دارد.
طراحی هر ساختمان داده طوری انجام میشود که بتواند نیاز خاصی را برطرف کند، هر ساختمان داده مزایا و معایبی دارد و برنامه نویس با توجه به نیازهای برنامهای که طراحی میکند، میبایست ساختمان دادههای مناسبی را انتخاب کند و با توجه به این انتخاب، کارایی نرم افزار نهایی را تضمین نماید.
بنابراین برنامه نویسان باید بر انواع ساختمانهای داده تسلط کافی داشته باشند.
دانلود 1 جزوه ساختمان داده ها
نوع داده های اولیه (Primitive Data Type)
داده ها در نرم افزارهای کامپیوتری یا در زبانهای برنامه نویسی به شکل اولیه خودشون به شکل داده های اولیه ذخیره میشوند. نوع های داده اولیه (Primitive Or Base Data Type) ساده ترین نوع ساختمان داده ها هستند، نمونه ای از نوع های داده اولیه بصورت زیر است:
- Boolean : این نوع داده تنها می تواند دو مقدار true و false را به خودش بگیرد. از این نوع داده معمولا در شرط ها و حلقه ها استفاده میشود.
- Integer : یک متغیر از نوع داده Integer متغیری است که برای نگهداری اعداد صحیح که دارای اعشار نمی باشند، استفاده می گردد.
- نوع داده Integer با اندازه های مختلف رنج متفاوتی از اعداد را میتواند در خود ذخیره کند، بعنوان مثال یک Integer علامت دار 8 بیتی (signed 8-bit integer) مقادیر بین بازه -128 تا 127 را نگه میدارد و یک Integer بدون علامت 32 بیتی (unsigned long 32-bit integer) مقادیر بین بازه 0 تا 4,294,967,295 را نگه میدارد
- Floating-point numbers : نمایش فرمولی (formulaic representation) اعداد حقیقی را در کامپیوتر ذخیر میکند.
- Fixed-point numbers : در برخی از زبان های برنامه نویسی استفاده میشود و یک عدد حقیقی را به این صورت ذخیره میکند که مقدار صحیح اش و مقدار اعشارش جداگانه ذخیره میکند
- Character : این نوع داده می تواند کاراکتر های مختلف را در خودش ذخیره کند. این نوع داده معمولا در زبان های برنامه نویسی با کلمه ی char مشخص میشوئ و می تواند کاراکترهایی نظیر ‘A’ و ‘b’ و ‘ ‘ (فاصله) و ‘%’ و یا هر کاراکتر دیگری را در خودش ذخیره کند
- String : این داده می تواند رشته ای از کاراکترها را در خودش ذخیره کند. برای مثال این مدل داده می تونه رشته های “konkurcomputer” یا “Data Structure” یا “۱۳۵79” را در خودش ذخیره کند
اگر این نوع های داده اولیه را به اشکال مختلف در کنار هم قرار دهیم ساختمان های داده پیچیده تر نظیر آرایه تشکیل میشود. مثلا اگر ما 10 تا عدد Integer را خیلی ساده در کنار هم قرار بدهیم یک بلاک یا یک سازمانی از داده ها تشکیل میشود که به آن آرایه میگویند.
دانلود 1 جزوه ساختمان داده ها
آرایه
آرایه رایج ترین ساختار ذخیره داده است و اکثر زبانهای برنامه نویسی از آن بهره میبرند. همین طور برخی از مهم ترین ساختمان های داده نظیر لیست، پشته و صف با آرایه قابل طراحی و پیاده سازی هستند. همچنین از آرایه در طراحی بسیاری از الگوریتمها و حل بسیاری از مسائل به عنوان یک Lookup Table استفاده میشود:
تعریف آرایه:
آرایه مجموعهای از دادههایی است که خصوصیات زیر را داشته باشد :
- همگی از یک نوع داده باشند
- در خانههای پیوسته حافظه قرار گیرند
- تمامی این عناصر دادهای با استفاده از آدرس اولین عنصر و Index مربوط به عنصر مورد نظر، بطور مستقیم قابل دسترسی و آدرس دهی باشند
به زبان ریاضی، آرایه یک نگاشت (Mapping) از شاخصها به عناصر دادهای است
انواع آرایه
- آرایه تک بعدی
- آرایه های چند بعدی
دانلود 1 جزوه ساختمان داده ها
لیست پیوندی
لیست پیوندی: لیست پیوندی ساختمان داده ای است که از یک تعداد نود تشکیل شده که هر نود یک رکورد شامل دیتا و آدرس نود بعدی است که به اصطلاح میگویند نود دارد به نود بعدی اشاره میکند، در لیست پیوندی هر نود میتواند در هر آدرسی از حافظه باشد
دانلود 1 جزوه ساختمان داده ها
پشته (Stack)
ساختمان داده پشته مجموعهای پویا از دادهها است که هنگام حذف عنصر از این مجموعه، آخرین عنصر اضافه شده به مجموعه از آن حذف میشود، اصطلاحا به این روش حذف داده های LIFO (Last In First Out) یا LCFS(Last Come First Serve) گفته میشود. بنابراین پشته ترتیب خروج عناصر را کنترل میکند. در نتیجه برای دسترسی به یک عنصر، ابتدا باید عناصری را که پس از آن به پشته وارد شدهاند از پشته خارج کرد.
دانلود 1 جزوه ساختمان داده ها
صف
ساختمان داده صف یک لیست مرتب است که عناصر جدید به انتهای آن اضافه میشوند و از ابتدای آن حذف میگردند. ابتدای صف سر صف نامیده میشود. صف برای مدیریت نوبت عناصر از الگوریتم FIFO(First In First Out) استفاده میکند که بر طبق آن هر عنصری که زودتر وارد صف شود زودتر سرویس میگیرد
عملیاتی که روی صف انجام میگیرد
ENQUEUE (Q,X) : اضافه کردن عنصر x به انتهای صف Q
DEQUEUE (Q) : حذف یک عنصر از ابتدای صف Q و بازگرداندن آن عنصر بعنوان خروجی
دانلود 1 جزوه ساختمان داده ها
درخت
ساختمان داده درخت یا به اختصار درخت، نشان دهنده یک ساختار سلسله مراتبی است که در علوم کامپیوتر کاربردهای گستردهای پیدا کرده است. از درخت به منظور آنالیز مدارهای الکترونیکی، بیان رابطههای، سازماندهی دادهها در پایگاه های دادهای و بیان ساختارهای گرامری در کامپایلرها استفاده میشود.
درخت مجموعه ای از عناصر است که گره نام دارند، یکی از این گرهها در جایگاه ریشه درخت قرار گرفته است و سایر گره ها در زیر ریشه قرار دارند. یک گره میتواند حاوی هر دادهای اعم از عدد، حرف، رشته ای از حروف و غیره باشد.
دانلود 1 جزوه ساختمان داده ها
از این که تا پایان متن با ما همراه بودید سپاسگزاریم.
منبع:گوگل
آرایه,الگوریتم,پرکاربردترین ساختمان دادهها,پشته,جدول درهم سازی,حل مسئله,درخت,درخت پیشوندی,دسترسی آسانتر و بهینه تر,سیپلاسپلاس بههمراه ساختارهای دادهها,صف,علوم کامپیوتر,گراف,لیست پیوندی,مفاهیم عمده در علوم رایانه
درباره این محصول نظر دهید !
- توضیحات محصول را به خوبی بخوانید و در صورت نیاز به راهنمایی از بخش کاربری و سیستم تیکت استفاده نمایید .
- پشتیبانی محصولات سیستم تیکت و تماس از طریق واتس آپ می باشد .
- برای دریافت آخرین نسخه محصولات و دسترسی همیشگی به محصولات خریداری شده حتما در سایت عضو شوید .
- پرداخت از طریق درگاه بانکی انجام میشود در غیر این صورت با ما تماس بگیرید