CSE 3330: Dynamic Data Structures 2
Students enhance their knowledge of abstract data types that utilize dynamic data structures by expanding their repertoire to include stacks and queues. Students also study the unordered data structures, set and map, and learn how to incorporate them into abstract data types. As part of this work, they learn how to use linked lists to create stacks and queues.
Theory
Analyze and represent the nature, structure and utility of stacks, queues, sets and/or maps
- explain and represent the nature and mechanics of stacks, queues, sets and/or maps including:
- the role of stacks, queues, sets and/or maps as containers for abstract data types (ADTs)
- the abstract data type and data manipulation each structure is best suited to
- the logical structure of stacks, queues, sets and/or maps
- explain and represent the standard operators associated with stacks, queues, sets and/or maps including:
- create the data structure
- copy the data structure; e.g., cloning, deep copy
- push, pop and peek for stacks
- enqueue and dequeue for queues
- link keys and values for maps
- search, insert, remove and modify data elements in sets and/or maps
- determine equality between sets
- determine union, intersection, difference and symmetric difference
- delete the data structure
- explain the advantages and disadvantages of using stacks, queues, sets and/or maps
Practical
Create and/or modify algorithms using stacks, queues, sets and/or maps to solve problems
- demonstrate the use of appropriate general design techniques to draft algorithms that use stacks, queues, sets and/or maps
- analyze and decompose the problem into appropriate subsections using the decomposition techniques appropriate for the chosen design approach
- evaluate subsections and identify any that may require stacks, queues, sets and/or maps, based on the nature of the data to be processed and type of processing operations
- identify which structures (stacks, queues, sets and/or maps) are appropriate or required to manipulate data
- sequence the various subsections appropriately
- test and modify the developing algorithm with appropriate data using a “fail-on-paper” process
Create and/or modify programs based on appropriate algorithms using stacks, queues, sets and/or maps
- convert algorithms calling for stacks, queues, sets and/or maps into programs that reflect the algorithm’s design
- use original (user-created) or pre-existing stacks, queues, sets and/or maps appropriate to the data being manipulated
- utilize the appropriate operators, methods, functions or procedures required to use stacks, queues, sets and/or maps
- use internal and external documentation
Compare program operation and outcomes with the intent of the algorithm and modify, as required
- use appropriate error-trapping mechanisms built into the programming environment, as well as programmer-directed error-trapping techniques, to eliminate logic errors and debug the program
- compare the congruency between the outcomes of the debugged program and the original intent of the algorithm and modify both, as required
Competencies and Skills
You will also be evaluated on your basic competencies such as your ability to:
- communicate
- manage information
- use numbers
- think and solve problems
- demonstrate positive attitudes and behaviours
- be responsible
- be adaptable
- learn continuously
- work safely
- work with others
- participate in projects and tasks