(0,0) (0,1) (0,2) (1,2) (2,2) (2,1) (2,0) (1,0) (1,1)
The following picture shows a 4x4 spiral matrix:
A 4x4 Spiral matrix |
An question asked by zoho corporation during interview was to write a program to read a matrix spirally. In this post, we will answer this zoho interview question. Remember that the memory implementation is purely same as a normal matrix. The only difference here is the order in which we store elements to matrix or access elements in matrix. The following is the java program to read a spiral matrix. In thi s java program for spiral matrix, we just read the elements to the matrix. The elements entered by the user are entered into the matrix spirally. And the program finally displays the full matrix just as all normal matrices are displayed. Then you can see that the elements are not stored in the order as they were entered. You can see the spiral order in the matrix.
import java.io.*; public class Spiral { public static void main(String args[]) { int a[][]=new int[10][10]; int o,cellcount,cc=0,c=0,i=0,j=0,g=1; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter the order of spiral matrix"); o=Integer.parseInt(br.readLine()); cellcount=o; System.out.println("\nEnter the elements:\n"); while(c<o*o) { cc=0; for(;cc<cellcount;j=j+g,cc++) a[i][j]=Integer.parseInt(br.readLine()); j=j-g; c+=cc; cc=0; i=i+g; cellcount--; if(c>=o*o) break; for(;cc<cellcount;i=i+g,cc++) a[i][j]=Integer.parseInt(br.readLine()); c+=cc; i=i-g; j=j-g; g*=-1; } System.out.println("\nThe spiral matrix is:"); for(i=0;i<o;i++) { System.out.print("\n"); for(j=0;j<o;j++) System.out.print(Integer.toString(a[i][j])+"\t"); } }catch(Exception ex){ex.printStackTrace();} } }
No comments:
Post a Comment