Book Image

Learn Data Structures and Algorithms with Golang

By : Bhagvan Kommadi
Book Image

Learn Data Structures and Algorithms with Golang

By: Bhagvan Kommadi

Overview of this book

Golang is one of the fastest growing programming languages in the software industry. Its speed, simplicity, and reliability make it the perfect choice for building robust applications. This brings the need to have a solid foundation in data structures and algorithms with Go so as to build scalable applications. Complete with hands-on tutorials, this book will guide you in using the best data structures and algorithms for problem solving. The book begins with an introduction to Go data structures and algorithms. You'll learn how to store data using linked lists, arrays, stacks, and queues. Moving ahead, you'll discover how to implement sorting and searching algorithms, followed by binary search trees. This book will also help you improve the performance of your applications by stringing data types and implementing hash structures in algorithm design. Finally, you'll be able to apply traditional data structures to solve real-world problems. By the end of the book, you'll have become adept at implementing classic data structures and algorithms in Go, propelling you to become a confident Go programmer.
Table of Contents (16 chapters)
Free Chapter
Section 1: Introduction to Data Structures and Algorithms and the Go Language
Section 2: Basic Data Structures and Algorithms using Go
Section 3: Advanced Data Structures and Algorithms using Go


A queue consists of elements to be processed in a particular order or based on priority. A priority-based queue of orders is shown in the following code, structured as a heap. Operations such as enqueue, dequeue, and peek can be performed on queue. A queue is a linear data structure and a sequential collection. Elements are added to the end and are removed from the start of the collection. Queues are commonly used for storing tasks that need to be done, or incoming HTTP requests that need to be processed by a server. In real life, handling interruptions in real-time systems, call handling, and CPU task scheduling are good examples for using queues.

The following code shows the queue of Orders and how the Queue type is defined:

// Queue—Array of Orders Type
type Queue []*Order

// Order class
type Order struct {
priority int
quantity int
product string