Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Part 1 : Maze exploration using recursive function A Maze is given as N * N binary matrix of blocks where source block is the

Part 1: Maze exploration using recursive function
A Maze is given as N*N binary matrix of blocks where source block is the upper left most block i.e., maze[0][0] and destination block is lower rightmost block i.e., maze[N 1][N-1]. A rat starts from the source and has to reach the destination. The rat can move in four directions (i.e., left,
right, up or down).
In the maze matrix, 0 means the block is a dead end and non-zero means the block can be used in the path from source to destination, where non-zero value indicates the number of maximum jumps the rat can make from the cell (maze[i][j]). Also, a weight is applied to each cell in the path that is not dead-block, source or destination. The cell weight is set to be 1. Backtracking is an algorithmic technique for solving problems recursively by trying to build a solution incrementally in maze exploration.
Suggested Approach: Form a recursive function, which will follow a path and check if the path reaches the destination or not. If the path does not reach the destination, then backtrack and try other paths. Also, at any intermediate point along the longest path, make sure that you explore all the neighbours at that point to reach destination.
Objective:
Find the longest path from source to destination considering the cell weights in the path with multiple movement jumps.
Algorithm:
1. Create a solution matrix, initially filled with 0s.
2. Create a recursive function, which takes initial matrix, output matrix and position of rat (i, j).
3. if the position is out of the matrix or the position is not valid then return.
4. Mark the position output[i][j] as 1 and check if the current position is destination or not. If destination is reached print the output matrix and return.
5. Find all the neighbouring cells that are still open at the current position and recursively call for four movement directions.
6. Unmark position (i, j), i.e output[i][j]=0.
Constraints:
1. Jump value (maze[i][j]) is in range [1,5]
Your task is to implement the given algorithm in C++ with recursive functions. You need to test the solution in a main function by creating a 2D array and print out the maze solution correspondingly if there is a path existing. The output matrix contains 0 and 1, where maze[i][j]=1 represents the cell is taken into the path and maze[i][j]=0 represents if any path exists.
Part 2: Huffman decoding using recursive functions
To decode the encoded data, we require the Huffman tree. We iterate through the binary encoded data. To find character corresponding to current bits, we use following simple steps.
1. We start from root and do following until a leaf is found.
2. If current bit is 0, we move to left node of the tree.
3. If the bit is 1, we move to right node of the tree.
4. If during traversal, we encounter a leaf node, we print character of that particular leaf node and then again continue the iteration of the encoded data starting from step 1.
Your task is to implement the Huffman decoding algorithm from the above steps in a C++ program with Huffman decoding function and a main function to decode a compressed string based on Huffman encoding and display the original string.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Design And Implementation

Authors: Shouhong Wang, Hai Wang

1st Edition

1612330150, 978-1612330150

More Books

Students also viewed these Databases questions

Question

Total quality management focuses on: Group of answer choices

Answered: 1 week ago

Question

3. Identify challenges to good listening and their remedies

Answered: 1 week ago

Question

4. Identify ethical factors in the listening process

Answered: 1 week ago