Table of Contents

1.1 Data structures
1.2 Introduction to algorithms
1.3 Relation between data structures and algorithms
1.4 Abstract data types
1.5 Applications of ADTs
1.6 Algorithm efficiency

2.1 Searching and algorithms
2.2 Binary search
2.3 Python: Linear and binary search
2.4 Constant time operations
2.5 Growth of functions and complexity
2.6 O notation
2.7 Algorithm analysis
2.8 Recursive definitions
2.9 Recursive algorithms
2.10 Analyzing the time complexity of recursive algorithms

3.1 Sorting: Introduction
3.2 Selection sort
3.3 Python: Selection sort
3.4 Insertion sort
3.5 Python: Insertion sort
3.6 Shell sort
3.7 Python: Shell sort
3.8 Quicksort
3.9 Python: Quicksort
3.10 Merge sort
3.11 Python: Merge sort
3.12 Radix sort
3.13 Python: Radix sort
3.14 Overview of fast sorting algorithms
3.15 Python: Sorting with different operators

4.1 List abstract data type (ADT)
4.2 Singly-linked lists
4.3 Singly-linked lists: Search and insert
4.4 Singly-linked lists: Remove
4.5 Python: Singly-linked lists
4.6 Doubly-linked lists
4.7 Doubly-linked lists: Search and insert
4.8 Doubly-linked lists: Remove
4.9 Python: Doubly-linked lists
4.10 Linked list traversal
4.11 Sorting linked lists
4.12 Python: Sorting linked lists
4.13 Linked list dummy nodes
4.14 Linked lists: Recursion
4.15 Array-based lists
4.16 Python: Array-based list

5.1 Stack abstract data type (ADT)
5.2 Stacks using linked lists
5.3 Python: Array-based stacks
5.4 Queue abstract data type (ADT)
5.5 Queues using linked lists
5.6 Python: Array-based queues
5.7 Python: Stacks and queues using linked lists
5.8 Deque abstract data type (ADT)

6.1 Map ADT
6.2 Hash tables
6.3 Chaining
6.4 Linear probing
6.5 Quadratic probing
6.6 Double hashing
6.7 Hash table resizing
6.8 Common hash functions
6.9 Direct hashing
6.10 Hashing Algorithms: Cryptography, Password Hashing
6.11 Python: Hash tables

7.1 Binary trees
7.2 Applications of trees
7.3 Binary search trees
7.4 BST: Search algorithm
7.5 BST: Insertion
7.6 BST: Removal
7.7 BST: Traversal
7.8 BST: Height and insertion order
7.9 BST: Recursion
7.10 BST: Parent node pointers
7.11 Python: Binary search tree
7.12 Set abstract data type (ADT)
7.13 Python: Implementing a set ADT with a BST
7.14 Tries

8.1 AVL: A balanced tree
8.2 AVL rotations
8.3 AVL insertions
8.4 AVL removals
8.5 Java: AVL Trees
8.6 Red-black tree: A balanced tree
8.7 Red-black tree: Rotations
8.8 Red-black tree: Insertion
8.9 Red-black tree: Removal
8.10 Java: Red-black trees

9.1 Heaps
9.2 Heaps using arrays
9.3 Python: Heaps
9.4 Heap sort
9.5 Python: Heap sort
9.6 Priority queue abstract data type (ADT)
9.7 Treaps

10.1 Graphs: Introduction
10.2 Applications of graphs
10.3 Graph representations: Adjacency lists
10.4 Graph representations: Adjacency matrices
10.5 Directed graphs
10.6 Weighted graphs
10.7 Python:Vertex, Edge, and Graph classes
10.8 Graphs: Breadth-first search
10.9 Python: Breadth-first search
10.10 Graphs: Depth-first search
10.11 Python: Depth-first search
10.12 Algorithm: Dijkstra’s shortest path
10.13 Python: Dijkstra’s shortest path
10.14 Algorithm: Bellman-Ford’s shortest path
10.15 Python: Bellman-Ford’s shortest path
10.16 Topological sort
10.17 Python: Topological sort
10.18 Minimum spanning tree
10.19 Python: Minimum spanning tree
10.20 All pairs shortest path
10.21 Python: All pairs shortest path

11.1 Huffman compression
11.2 Huffman compression: Implementation
11.3 Heuristics
11.4 Java: Heuristics
11.5 Greedy algorithms
11.6 Python: Greedy algorithms
11.7 Dynamic programming
11.8 Python: Dynamic programming

12.1 B-trees
12.2 2-3-4 tree: Search
12.3 2-3-4 tree: Insertion
12.4 2-3-4 tree: Rotation and fusion
12.5 2-3-4 tree: Removal
12.6 Python: 2-3-4 trees

13.1 Bubble sort
13.2 Quickselect
13.3 Python: Quickselect
13.4 Bucket sort
13.5 List data structure
13.6 Circular lists

Teach Data Structures with this hands-on, interactive zyBook and customizable zyLabs

Data Structures in Pseudocode with Python Examples is suitable for a first course in data structures and algorithms, especially common in the first two years of a computing major.

  • Introduces the basics of algorithms and data structures, including sorting, runtime complexity, lists, stacks, queues, hash tables, trees, and graphs
  • Packed with over 1,000 learning questions and animations to help students master the material
  • Adopters have access to a test bank with over 400 questions
  • Pseudocode is used to teach essential data structures and algorithms, helping learners master the fundamental concepts
  • Features Python code example sections in each chapter

What is a zyBook?


Data Structures in Pseudocode with Python Examples is a web-native, interactive zyBook that helps students visualize concepts to learn faster and more effectively than with a traditional textbook. Check out our research.

Since 2012, over 1,800 academic institutions have adopted digital zyBooks to transform their STEM education.

zyBooks benefits both students and instructors:

  • Instructor benefits
  • Customize your course by reorganizing existing content, or adding your own content
  • Continuous publication model updates your course with the latest content and technologies
  • Robust reporting gives you insight into students’ progress, reading and participation
  • Save time with auto-graded labs and challenge activities that seamlessly integrate with your LMS gradebook
  • Build quizzes and exams with hundreds of included test questions
  • Student benefits
  • Learning questions and other content serve as an interactive form of reading
  • Instant feedback on labs and homework
  • Concepts come to life through extensive animations embedded into the interactive content
  • Review learning content before exams with different questions and challenge activities
  • Save chapters as PDFs to reference the material at any time

What is a zyLab?

See the capabilities of the zyBooks programming environment

Authors

Roman Lysecky
Professor Emeritus of Electrical and Computer Engineering, Univ. of Arizona

Frank Vahid
Computer Science PhD, Univ. of California, Irvine / zyBooks Co-Founder

Evan Olds
Senior Content Developer, zyBooks

Instructors: Interested in evaluating this zyBook for your class?