Spiral traversal of matrix in node js

Js program for Spiral traversal of matrix. Here more information.

// Node JS program for 
// Spiral form of matrix
class SpiralView
{
	spiral(data, startRow, startCol, endRow, endCol, element)
	{
		// Left to right
		for (var i = startCol; i <= endCol && element > 0; ++i)
		{
			element--;
			process.stdout.write("  " + data[startRow][i]);
		}
		// Top to down
		for (var i = startRow + 1; i <= endRow && element > 0; ++i)
		{
			element--;
			process.stdout.write("  " + data[i][endCol]);
		}
		// Bottom right to bottom-left
		for (var i = endCol - 1; i >= startCol && element > 0; --i)
		{
			element--;
			process.stdout.write("  " + data[endRow][i]);
		}
		// Bottom left to top
		for (var i = endRow - 1; i > startRow && element > 0; --i)
		{
			element--;
			process.stdout.write("  " + data[i][startRow]);
		}
		if (startRow + 1 <= endRow - 1 && element > 0)
		{
			// Recursive call
			this.spiral(data, startRow + 1, 
                        startCol + 1, endRow - 1, 
                        endCol - 1, element);
		}
	}
}

function main()
{
	var task = new SpiralView();
	// Given matrix
	var matrix = [
		[1, 2, 3, 4, 5, 6],
		[22, 23, 24, 25, 26, 7],
		[21, 36, 37, 38, 27, 8],
		[20, 35, 42, 39, 28, 9],
		[19, 34, 41, 40, 29, 10],
		[18, 33, 32, 31, 30, 11],
		[17, 16, 15, 14, 13, 12]
	];
	var row = matrix.length;
	var col = matrix[0].length;
	// Get the number of element
	var element = row * col;
	task.spiral(matrix, 0, 0, row - 1, col - 1, element);
}
// Start program execution
main();

Output

  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved