ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel
  • »
  • Technology»
  • Computers & Software

Computer Science at the Supermarket

Updated on October 25, 2011

Data Structures in the Supermarket


Data structures in Computer Science tend to be quite conceptual. Data structure tutorials and examples are scattered all across the Internet, but It’s often difficult to visualize what a queue or a stack looks like when it’s implemented in code. Students encounter difficulties at the high school, college, and graduate school levels.

Data structures are conceptual models of real-world entities. While real-world entities are most often more complicated than typical computer science data structures, the conceptual models studied in school are very helpful as a basis for the models. Ensuring the future of computer science in schools obligates us to teach basic models and allow students the opportunity to build on them.

The purpose of learning how data structures work is twofold. Students need to be capable of identifying applications for data structures in their projects. Most modern design tools and programming languages have common data structures already implemented. If students, who will become engineers, programmers, and analysts, can’t associate common data structures with what they see in the real world, they will be much less valuable to employers and clients.

Animations are also excellent visual aides, or possibly hindrances if implemented poorly. Real-world examples are much more effective for most people. Most people are familiar with the layout and organization of a grocery store. By relating data structures and grocery stores, we increase the efficiency and marketability of students.


One common data structure is the queue. A queue is organized such that items enter the queue at one end and exit at the other end. In Computer Science parlance, this is referred to as “FIFO”, or First in First Out. What part of the grocery store models a queue? The check out line, of course, models a queue. Customers enter the line (queue) at the back and exit at the front. The first person in line is the first person who gets checked out.

Another common data structure is the stack. A stack, unlike a queue, is described as “LIFO”, or “Last in First Out.” The most recent item added to the stack is always the next item that will be removed from the stack. In a grocery store the cereal box shelf is an excellent example of a stack. The shelf is stocked from the front; a clerk pushes a box onto the shelf, moving the other boxes closer to the back. When a customer grabs a box from the shelf, they are getting the most recent box that was stocked. It’s a classic LIFO data structure. Of course, the downside of a using a stack to model a grocery store shelf is that the oldest items will constantly be shifted toward the back of the inventory. The aging of the merchandise is backward. In the case of cereal, this probably doesn’t matter. In the case of a time-sensitive perishable product like milk, the queue strategy falls apart. By stocking from the back, the milk shelf becomes a queue and it all works out.

Another data structure is a linked list. The linked list is used in computer science to dynamically maintain a list of items that may grow and shrink from both ends and also from anywhere within the list. For our example we will consider a doubly-linked list. In a doubly-linked list, any item in the list is connected to the items immediately before and after it in the list. Items can be inserted anywhere in the list and also deleted from anywhere in the list. The list is ordered and interconnected. What ordered, inheritable, updatable, delectable, and interconnected entities (data structures) exist in a supermarket? If you have a suggestion, please leave a comment below. Thank you for your help in forwarding the teaching of Computer Science!


    0 of 8192 characters used
    Post Comment

    • The Old Firm profile image

      The Old Firm 8 years ago from Waikato/Bay Of Plenty, New Zealand

      I was taking the simplistic approach that any name added or removed from an alphabetised list would be linked to the items immediately adjacent by its alphabetical order. It could not correctly be inserted in any other position. The same argument using the relevant parameters for a stock list.

      I was just being too lazy to pursue the requirement deeply.

      Cheers, TOF

    • nicomp profile image

      nicomp really 8 years ago from Ohio, USA

      @TOF: A doubly linked list should be structured in such a way that every element in the list can point to the element immediatly before it and also immediatly after it. The alphabetized list of employees wouldn't meet that requirement, I think. Nor the computerised stock list, unless I am not visualizing it correctly. Straighten me out if necessary.

    • profile image

      ralwus 8 years ago

      Be carefu lof TOF. He is sharp as a tack. My on the other hand, I'm dumber than a hoe handle. You lost me. LOL

    • The Old Firm profile image

      The Old Firm 8 years ago from Waikato/Bay Of Plenty, New Zealand

      OK nicomp, I'll play your' little game. How about the alphabetical list of part time employees? Or the computerised stock list for that matter.

      (No I'm not stalking you. I get notifications of your new hubs.)