Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
C# Data Structures and Algorithms

You're reading from   C# Data Structures and Algorithms Harness the power of C# to build a diverse range of efficient applications

Arrow left icon
Product type Paperback
Published in Feb 2024
Publisher Packt
ISBN-13 9781803248271
Length 372 pages
Edition 2nd Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Marcin Jamro Marcin Jamro
Author Profile Icon Marcin Jamro
Marcin Jamro
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Chapter 1: Data Types 2. Chapter 2: Introduction to Algorithms FREE CHAPTER 3. Chapter 3: Arrays and Sorting 4. Chapter 4: Variants of Lists 5. Chapter 5: Stacks and Queues 6. Chapter 6: Dictionaries and Sets 7. Chapter 7: Variants of Trees 8. Chapter 8: Exploring Graphs 9. Chapter 9: See in Action 10. Chapter 10: Conclusion 11. Index 12. Other Books You May Enjoy

Rat in a maze

Let’s continue our adventure with examples by solving the rat in a maze problem with a back-tracking algorithm. The diagram is shown as follows:

Figure 9.6 – Illustration of the rat in a maze example

Figure 9.6 – Illustration of the rat in a maze example

Let’s imagine that a rat is located in the top-left field on the board, which is marked as (0, 0) in the preceding figure, and we need to find a path to the exit, which is located in the bottom-right field and is marked as (7, 7). Of course, some blocks are disabled (shown in gray) and the rat cannot go through them. To reach the target, the rat can go up, down, left, or right only using the available blocks.

You can solve this problem using the recursion to check possible paths leading the rat from the entry to the exit. If the currently calculated path does not reach the exit, you backtrack and try other variants.

The main part of the implementation is the Go method, as follows:

bool Go(int row, int col)
{
 ...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime