In this chapter we learned the basic definition of the Stack data structure, including how to initialize concrete implementations of the structure in each of the four languages we are discussing. Next, we discussed the most common operations associated with the stack data structure and their operational cost. We examined a case study using stacks to track commands passed to a robotic manufacturing device. These examples demonstrated how C# and Java provide concrete implementations of a stack whereas Objective-C and Swift do not. Finally, we examined the two most common types of stacks, the array-based and the linked-list-based, and showed how the array-based stack is not well suited for a sorted stack.