Book Image

C# Data Structures and Algorithms

By : Marcin Jamro
Book Image

C# Data Structures and Algorithms

By: Marcin Jamro

Overview of this book

Data structures allow organizing data efficiently. They are critical to various problems and their suitable implementation can provide a complete solution that acts like reusable code. In this book, you will learn how to use various data structures while developing in the C# language as well as how to implement some of the most common algorithms used with such data structures. At the beginning, you will get to know arrays, lists, dictionaries, and sets together with real-world examples of your application. Then, you will learn how to create and use stacks and queues. In the following part of the book, the more complex data structures will be introduced, namely trees and graphs, together with some algorithms for searching the shortest path in a graph. We will also discuss how to organize the code in a manageable, consistent, and extendable way. By the end of the book,you will learn how to build components that are easy to understand, debug, and use in different applications.
Table of Contents (14 chapters)

Priority queues


A priority queue makes it possible to extend the concept of a queue by setting priority for each element in the queue. It is worth mentioning that the priority can be specified simply as an integer value. However, it depends on the implementation whether smaller or greater values indicate higher priority. Within this chapter, it is assumed that the highest priority is equal to 0, while lower priority is specified by 1, 2, 3, and so on. Thus, the dequeue operation will return the element with the highest priority, which has been added first to the queue, as shown in the following diagram:

Let's analyze the diagram. First, the priority queue contains two elements with the same priority (equal to 1), namely Marcin and Lily. Then, the Mary element is added with higher priority (0), which means that this element is placed at the beginning of the queue, that is, before Marcin. In the next step, the John element is added with the lowest priority (2), so it is added at the end of...