به عقیده بسیاری از دانشمندان، علم کامپیوتر علم الگوریتم ها است.
بنابراین نیاز داریم به:
1)یک ماشین برای اجرای الگوریتمها
2)زبانی برای بیان الگوریتم
3)ساختار الگوریتم
در درس ساختمان داده ها مدلهای منطقی و ریاضی سازماندهی داده ها به شکلهای مختلف را بررسی می کنیم.
ساختمان داده ها به طور کلی به سه دسته تقسیم می شوند:
1)ایستا(استاتیک یا ثابت) مانند آرایه
2)نیمه ایستا مانند پشته(STAEK) و صف(QUEUE)
3)پویا مانند لیست پیوندی ،درخت و گراف
کارایی الگوریتم
برای حل یک مساله ممکن است الگوریتم های مختلفی وجود داشته باشد.
دو عامل زیر برای تعیین کارایی یک الگوریتم بسیار مهم و اساسی هستند:
.1استفاده از فضا(حافظه ای که برای ذخیره داده ها لازم است.)
.2زمان لازم برای پردازش
پیچیدگی الگوریتم ها
با استفاده از متغیر کمکی و بدون استفاده ازمتغیر کمکی محتوای دو متغیر را جابجا کنید؟ (YوX را بخواند و چاپ کند، جابجا کند، دوباره چاپ کند)
readln(a,b);
writeln(a,b);
temp:=a;
a:=b;
b:=temp;
writeln(a,b);
نکته:
برای پیاده سازی صف با استفاده از آرایه نیاز به دو متغیر Front و Rear داریم که برای نشان دادن ابتدا و انتهای صف از آنها استفاده می شود.
درخت پر:
درختی است که حداکثر گره ها را داشنه باشد و تمام گره های سطح آخر آن برگ می باشند.
درخت دودویی کامل:
اگر در یک درخت شماره گذاری شده، گره ها مطابق با شماره گذاری درخت پر متناظر باشد، درخت دودویی کامل گفته می شود.
هر درخت پر، کامل است.
گراف بدون وزن اگر یک گذر بین راس ها ی (i,j) وجود داشته باشد عنصر متناظر در سطر (i) و ستون(j) را یک و اگر وجود نداشته باشد صفر قرار می دهیم.
دانلود پاورپوینت ساختمان داده ها و الگوریتم ها به زبان# C -در 140 اسلاید