稀疏数组
public static void main(String[] args) {
int simpleArr[][] = new int[8][8];
simpleArr[1][2] = 10;
simpleArr[2][4] = 8;
simpleArr[6][3] = 7;
simpleArr[5][7] = 4;
simpleArr[1][3] = 1;
for (int[] row:simpleArr)
{
for (int i:row)
{
System.out.printf("%d\t",i);
}
System.out.println();
}
System.out.println("---------------------普通数组转化稀疏数组-------------------------");
int sum=0;
for (int[] row:simpleArr)
{
for (int i:row)
{
if (i!=0)
{
sum++;
}
}
}
int spare[][] = new int[sum+1][3];
spare[0][2] = sum;
for (int[] row:simpleArr)
{
spare[0][1] = row.length;
int count = 0;
for (int i:row)
{
count++;
}
spare[0][0] = count;
break;
}
int count = 1;
for (int i= 0; i < spare[0][0];i++)
{
for (int j = 0; j <spare[0][1];j++)
{
if (simpleArr[i][j] != 0)
{
spare[count][0]=i;
spare[count][1]=j;
spare[count][2]=simpleArr[i][j];
count++;
}
}
}
for (int[] row:spare)
{
for (int data:row)
{
System.out.printf("%d\t",data);
}
System.out.println();
}
System.out.println("---------------------稀疏数组转普通数组-----------------------");
int spareToSimple[][] = new int[spare[0][0]][spare[0][1]];
for (int i =1;i < spare[0][2]+1;i++)
{
spareToSimple[spare[i][0]][spare[i][1]] = spare[i][2];
}
for (int[] row:spareToSimple)
{
for (int j : row)
{
System.out.printf("%d\t",j);
}
System.out.println();
}
}
循环队列
public class LoopQueue {
int maxsize;
int rear;
int front;
int[] queue;
LoopQueue(int maxsize){
this.maxsize = maxsize;
rear = 0;
front = 0;
queue = new int[maxsize];
}
boolean isFull(){
return (rear+1)%maxsize == front;
}
boolean isEmpty(){
return rear == front;
}
void addItem(int item)
{
if (isFull())
{
throw new RuntimeException("队列已满!!!");
}else
{
//queue[(rear+1)%maxsize] = item;
//rear++;
queue[rear] = item;
rear = (rear+1)%maxsize;
}
}
int getItem(){
if (isEmpty())
{
throw new RuntimeException("队列为空!!");
}else
{
// return queue[front++%maxsize];
int var = queue[front];
front = (front+1)%maxsize;
return var;
}
}
int powerfulSize()
{
return (rear+maxsize-front)%maxsize;
}
void showAllQueue()
{
for (int i = front ; i < front+powerfulSize();i++)
{
System.out.printf("queue[%d] is %d",i%maxsize,queue[i%maxsize]);
}
}
}