در دنیای برنامهنویسی و علوم کامپیوتر، الگوریتمها و ساختمانهای داده دو ستون اصلی برای حل مسائل پیچیده به صورت کارآمد و بهینه هستند.