Abstract data structures

From Computer Science Wiki
Revision as of 15:27, 20 August 2016 by Mr. MacKenty (talk | contribs)

Exclamation.png This is one of the most important ideas you can take with you:

Decompose a problem into smaller parts, model a problem with flowcharts. Learn to think sequentially

Computational thinking, problem-solving and programming[1]

Computational Thinking (CT) is a process that generalizes a solution to open-ended problems. Open-ended problems encourage full, meaningful answers based on multiple variables, which require using decomposition, data representation, generalization, modeling, and algorithms found in Computational Thinking. Computational Thinking requires the decomposition of the entire decision making process, the variables involved, and all possible solutions, ensuring that the right decision is made based on the corresponding parameters and limitations of the problem. The term computational thinking was first used by Seymour Papert in 1980[1] and again in 1996.[2] Computational thinking can be used to algorithmically solve complicated problems of scale, and is often used to realize large improvements in efficiency[2]


The big ideas in Abstract data structures[edit]

Thinking recursively[edit]

Abstract data structures[edit]

Linked lists[edit]

Trees[edit]

Standards[edit]

  • Identify a situation that requires the use of recursive thinking.
  • Identify recursive thinking in a specified problem solution.
  • Trace a recursive algorithm to express a solution to a problem.
  • Describe the characteristics of a two- dimensional array.
  • Construct algorithms using two- dimensional arrays.
  • Describe the characteristics and applications of a stack.
  • Construct algorithms using the access methods of a stack.
  • Describe the characteristics and applications of a queue.
  • Construct algorithms using the access methods of a queue.
  • Explain the use of arrays as static stacks and queues.
  • Describe the features and characteristics of a dynamic data structure.
  • Describe how linked lists operate logically.
  • Sketch linked lists (single, double and circular).
  • Describe how trees operate logically (both binary and non-binary).
  • Define the terms: parent, left-child, right-child, subtree, root and leaf.
  • State the result of inorder, postorder and preorder tree traversal.
  • Sketch binary trees.
  • Define the term dynamic data structure.
  • Compare the use of static and dynamic data structures.
  • Suggest a suitable structure for a given situation.

References[edit]