recursion stacks and queues overview in this we'll examine three data storage structuresthe stackthe queueand the priority queue we'll begin by discussing how these structures differ from arraysthen we'll examine each one in turn in the last sectionwe'll look at an operation in which the stack plays significant roleparsing arithmetic expressions different kind of structure there are significant differences between the data structures and algorithms we've seen in previous and those we'll look at now we'll discuss three of these differences before we examine the new structures in detail programmer' tools the array--the data storage structure we've been examining thus far--as well as many other structures we'll encounter later in this book (linked liststreesand so on)are appropriate for the kind of data you might find in database application they're typically used for personnel recordsinventoriesfinancial dataand so ondata that corresponds to real-world objects or activities these structures facilitate access to datathey make it easy to insertdeleteand search for particular items the structures and algorithms we'll examine in this on the other handare more often used as programmer' tools they're primarily conceptual aids rather than fullfledged data storage devices their lifetime is typically shorter than that of the databasetype structures they are created and used to carry out particular task during the operation of programwhen the task is completedthey're discarded restricted access in an arrayany item can be accessedeither immediately--if its index number is known--or by searching through sequence of cells until it' found in the data structures in this howeveraccess is restrictedonly one item can be read or removed at given time the interface of these structures is designed to enforce this restricted access access to other items is (in theorynot allowed more abstract stacksqueuesand priority queues are more abstract entities than arrays and many other data storage structures they're defined primarily by their interfacethe permissible operations that can be carried out on them the underlying mechanism used to implement them is typically not visible to their user for examplethe underlying mechanism for stack can be an arrayas shown in this or it can be linked list the underlying mechanism for priority queue can be an array or special kind of tree called heap we'll return to the topic of one data structure being implemented by another when we discuss abstract data types (adtsin "linked lists