Go Data Structures and Algorithms

por Christopher Fox
Comentário :
( 0 )
265 pages
Idioma:
 English
Standard introduction to data structures and algorithms using the Go programming language covering stacks, queues, lists, trees, sets, maps, graphs, hashing, searching, and sorting.
Este é um e-book grátis para estudantes
Inscreve-te para acesso grátis
Todos os livros de estudantes são grátis para sempre. Menos de 15% de anúncios
 
Período de 30 dias grátis
Subscrição para empresas grátis nos primeiros 30 dias, após o período $5.99/mês
Última adição
Description
Content

A concise introduction to data structures and algorithms in Go. Data structures are presented in a container hierarchy that includes stacks and queues as non-traversable dispensers, and lists, sets, and maps as traversable collections. Algorithm analysis is introduced and applied to linear and binary search, bubble sort, selection sort, insertion sort, merge sort and quicksort. The book also covers heaps and heapsort, unbalanced binary search trees, AVL trees, 2-3 trees, hashing, graph representations, and graph algorithms based on depth-and breadth-first search.

About the author

Christopher Fox is a Professor and Director of the Undergraduate Program in Computer Science at James Madison University. He holds a Ph.D. in Information Studies and an M.S. in Computer Science from Syracuse University, and M.A. and B.A. degrees in Philosophy from Michigan State University. Dr. Fox has over 20 years experience teaching Computer Science at JMU, Bowling Green State University, Villanova, Rutgers, and Colgate. Dr. Fox also spent a decade in software research and development at various companies, including AT&T Bell Laboratories. He has published numerous articles and several books, including Introduction to Software Engineering in the Unix/C Environment, and Introduction to Software Engineering Design.


  • Preface 
  1. Introduction 
    1. What Are Data Structures and Algorithms? 
    2. Structure of the Book 
    3. The Go Programming Language 
    4. Review Questions 
    5. Exercises 
    6. Review Question Answers
  2. Built-In Types 
    1. Simple and Structured Types 
    2. Simple Types in Go 
    3. Structured Types in Go
    4. Arrays 
    5. Slices in Go 
    6. Characters and Strings 
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  3. Implementing ADTs in Go 
    1. Specifying Carrier and Method Sets in Go
    2. Implementing ADT s in Go
    3. A Simple ADT Implementation
    4. Struct Types in Go 
    5. Interfaces 
    6. Summary and Conclusion 
    7. Review Questions
    8. Exercises
    9. Review Question Answers
  4. Containers 
    1. Introduction 
    2. Varieties of Containers 
    3. A Container Taxonomy 
    4. Implementing Containers in Go
    5. Review Questions 
    6. Exercises
    7. Review Question Answers
  5. Assertions
    1. Introduction
    2. Types of Assertions 
    3. Assertions and Abstract Data Types
    4. Using Assertions 
    5. Assertions in Go
    6. Review Questions
    7. Exercises
    8. Review Question Answers
  6. Stacks 
    1. Introduction
    2. The Stack ADT
    3. The Stack Interface 
    4. An Example Using Stacks
    5. Contiguous Implementation of the Stack ADT
    6. Linked Implementation of the Stack ADT
    7. Summary and Conclusion
    8. Review Questions
    9. Exercises
    10. Review Question Answers
  7. Queues 
    1. Introduction 
    2. The Queue ADT and Interface 
    3. An Example Using Queues
    4. Contiguous Implementation of the Queue ADT
    5. Linked Implementation of the Queue ADT 
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises
    9. Review Question Answers
  8. Stacks and Recursion
    1. Introduction
    2. Balanced Brackets 
    3. Infix, Prefix, and Postfix Expressions
    4. Tail Recursive Algorithms 
    5. Summary and Conclusion
    6. Review Questions
    7. Exercises 
    8. Review Question Answers
  9. Collections and Iterators
    1. Introduction
    2. Iteration Design Alternatives
    3. The Iterator Design Pattern
    4. Iteration in Go
    5. Collections, Iterators, and Containers
    6. Summary and Conclusion
    7. Review Questions
    8. Exercises
    9. Review Question Answers
  10. Lists
    1. Introduction
    2. The List ADT and Interface
    3. An Example of Using Lists
    4. Contiguous Implementation of the List ADT 
    5. Linked Implementation of the List ADT 
    6. Example: Modifying a Doubly-Linked Circular List 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers 
  11. Analyzing Algorithms
    1. Introduction 
    2. Measuring the Amount of Work Done
    3. The Size of the Input 
    4. Which Operations to Count
    5. Best, Worst, and Average Case Complexity 
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  12. Function Growth Rates 
    1. Introduction 
    2. Definitions and Notation 
    3. Establishing the Order of Growth of a Function 
    4. Applying Orders of Growth 
    5. Summary and Conclusion 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers
  13. Basic Sorting Algorithms 
    1. Introduction
    2. Bubble Sort 
    3. Selection Sort 
    4. Insertion Sort 
    5. Shell Sort 
    6. Summary and Conclusion
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers
  14. Recurrences 
    1. Introduction 
    2. Setting Up Recurrences
    3. Solving Recurrences
    4. Summary and Conclusion
    5. Review Questions
    6. Exercises 
    7. Review Question Answers
  15. Merge sort and Quicksort
    1. Introduction
    2. Merge Sort
    3. Quicksort 
    4. Summary and Conclusion
    5. Review Questions
    6. Exercises
    7. Review Question Answers 
  16. Trees, Heaps, and Heapsort 
    1. Introduction 
    2. Basic Terminology 
    3. Binary Trees 
    4. Heaps 
    5. Heapsort 
    6. Summary and Conclusion
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers
  17. Binary Trees 
    1. Introduction 
    2. The Binary Tree ADT
    3. The Binary Tree Type 
    4. Contiguous Implementation of Binary Trees
    5. Linked Implementation of Binary Trees
    6. Summary and Conclusion
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  18. Binary Search and Binary Search Trees 
    1. Introduction
    2. Binary Search
    3. Binary Search Trees 
    4. The Binary Search Tree Type 
    5. Summary and Conclusion 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers 
  19. AVL Trees
    1. Introduction 
    2. Balance in AVL Trees 
    3. Insertion in AVL Trees 
    4. Deletion in AVL Trees 
    5. The Efficiency of AVL Operations
    6. The AVL Tree Type
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises
    10. Review Question Answers 
  20. 2-3 Trees 
    1. Introduction 
    2. Properties of 2-3 Trees 
    3. Insertion in 2-3 Trees 
    4. Deletion in 2-3 Trees 
    5. The Two-Three Tree Type 
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  21. Sets 
    1. Introduction 
    2. The Set ADT 
    3. The Set Interface 
    4. Contiguous Implementation of Sets 
    5. Linked Implementation of Sets 
    6. Sets and Tree Sets in Go 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers
  22. Maps
    1. Introduction
    2. The Map ADT
    3. The Map Interface 
    4. Contiguous Implementation of the Map ADT 
    5. Linked Implementation of the Map ADT 
    6. The map Type in Go
    7. Summary and Conclusion
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers
  23. Hashing 
    1. Introduction
    2. The Hashing Problem
    3. Collision Resolution Schemes
    4. Summary and Conclusion 
    5. Review Questions 
    6. Exercises
    7. Review Question Answers 
  24. Hashed Collections 
    1. Introduction 
    2. Hash Table Class 
    3. HashMaps 
    4. HashSets 
    5. Maps in Go 
    6. Summary and Conclusion
    7. Review Questions 
    8. Exercises
    9. Review Question Answers 
  25. Graphs 
    1. Introduction 
    2. Directed and Undirected Graphs
    3. Basic Terminology 
    4. The Graph ADT
    5. The Graph Interface 
    6. Contiguous Implementation of the Graph ADT 
    7. Linked Implementation of the Graph ADT
    8. Summary and Conclusion 
    9. Review Questions 
    10. Exercises 
    11. Review Question Answers 
  26. Graph Algorithms
    1. Introduction 
    2. Searching Graphs
    3. Depth-First Search 
    4. Breadth-First Search 
    5. Paths in a Graph 
    6. Connected Graphs and Spanning Trees 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers
  • Glossary