Home Tutorial Java Core Java: Spiral Traverse

 
 

Share on Google+Share on Google+
Java: Spiral Traverse
Posted on: November 23, 2012 at 12:00 AM
Advertisement
This section explain the logic of spiral traverse of n*m matrix in java.

Java: Spiral Traverse

This section explain the logic of spiral traverse of n*m matrix in java.

Spiral Traverse : Spiral Traverse means move in clock wise direction around a rectangular shape and finally print the middle one element.

It is a logical concept we are explaining it by example -

Example :

class SpiralTraverse {
	static int r = 4;
	static int c = 6;

	public static void main(String[] args) {
		int[][] a = { { 1, 2, 3, 4, 5, 6 }, { 7, 8, 9, 10, 11, 12 },
				{ 13, 14, 15, 16, 17, 18 }, { 19, 20, 21, 22, 23, 24 },

		};

		spiralPrint(r, c, a);
	}

	static void spiralPrint(int rIndex, int cIndex, int[][] a) {
		int i, k = 0, l = 0;
		rIndex--;
		cIndex--;
		/*
		 * k - starting row index rIndex - ending row index l - starting column index
		 * cIndex - ending column index i - iterator
		 */

		while (k <= rIndex && l <= cIndex) {
			/* Print the first row from the remaining rows */
			for (i = l; i <= cIndex; i++) {
				System.out.print(a[k][i] + " ");
			}
			k++;

			/* Print the last column from the remaining columns */
			for (i = k; i <= rIndex; i++) {
				System.out.print(a[i][cIndex] + " ");
			}
			cIndex--;

			/* Print the last row from the remaining rows */
			if (k <= rIndex) {

				for (i = cIndex; i >= l; i--) {
					System.out.print(a[rIndex][i] + " ");
				}
				rIndex--;
			}

			/* Print the first column from the remaining columns */
			if (l <= cIndex) {
				for (i = rIndex; i >= k; i--) {
					System.out.print(a[i][l] + " ");
				}
				l++;
			}
		}

	}
}

Description : In this example we are printing element of 4*6 matrix in spiral traversing. To traverse the each element put condition
while (k <= rIndex && l <= cIndex) .
Now we traverse first row of matrix and then the last column and then last row and then the first column and repeat the same till the while condition fails.

Output :

1 2 3 4 5 6 12 18 24 23 22 21 20 19 13 7 8 9 10 11 17 16 15 14 
Advertisement

Related Tags for Java: Spiral Traverse:


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: November 23, 2012

Recommend the tutorial

Advertisements Advertisements
 

 

 

DMCA.com