Posted on by Kalkicode
Code Matrix

# Spiral traversal of matrix in ruby

Ruby program for Spiral traversal of matrix. Here problem description and other solutions.

``````#  Ruby program for
#  Spiral form of matrix
class SpiralView
def spiral(data, startRow, startCol,
endRow, endCol, element)
i = startCol
#  Left to right
while (i <= endCol && element > 0)
element -= 1
print("  ", data[startRow][i])
i += 1
end

i = startRow + 1
#  Top to down
while (i <= endRow && element > 0)
element -= 1
print("  ", data[i][endCol])
i += 1
end

i = endCol - 1
#  Bottom right to bottom-left
while (i >= startCol && element > 0)
element -= 1
print("  ", data[endRow][i])
i -= 1
end

i = endRow - 1
#  Bottom left to top
while (i > startRow && element > 0)
element -= 1
print("  ", data[i][startRow])
i -= 1
end

if (startRow + 1 <= endRow - 1 && element > 0)
#  Recursive call
self.spiral(data, startRow + 1,
startCol + 1, endRow - 1,
endCol - 1, element)
end

end

end

def main()
task = SpiralView.new()
#  Given matrix
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]
]
row = matrix.length
col = matrix[0].length
#  Get the number of element
element = row * col
task.spiral(matrix, 0, 0, row - 1, col - 1, element)
end

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``

## Comment

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.

Categories
Relative Post