Datorzinātnēsteks (no angļu: stack — 'grēda, krāvums') ir abstrakts objekts, kurš darbojas pēc principa "pēdējais iekšā, pirmais ārā" (LIFO). Steku raksturo tikai trīs pamatoperācijas: ievietošana (push), izņemšana (pop) un steka augša (stack top). Steku var realizēt, izmantojot dažādas datu struktūras (tas var būt saraksts, masīvs, dažādas to kombinācijas. Turklāt vērtību glabāšanai var tikt izmantota nevis operatīvā atmiņa, bet gan fails uz diska.) Ievietošanas operācija pievieno jaunu elementu steka augšpusē, vai izveido steku, ja tas ir tukšs. Ja steks ir pilns un tajā vairs nav vietas jauniem elementiem, tad tiek uzskatīts, ka iestājies steka pārpildīšanās stāvoklis. Izņemšanas operācija izņem elementu, kurš atrodas steka augšpusē. Izņemšana vai nu atklāj iepriekš slēptos elementus, vai arī steku iztukšo. Steka augšas operācija iegūst datus no augšējā elementa un atgriež lietotājam, bet pašu elementu no steka neizņem. Ja steks ir tukšs, tad izņemšanas vai augšējā elementa operācija var radīt stāvokli, kad steks ir iztukšots un tiek pieprasīts neesošs elements.
Elementus no steka izņem apgrieztā ievietošanas secībā, tāpēc zemāk esošie elementi stekā atrodas visilgāk.[1]