队列的实现

#include<stdio.h>java

#include<stdlib.h>数组

#define max 10指针

//咱们采用循环队列来实现,经过少用一个数组的空间来判断队列是否满code

typedef int elementType;队列

typedef struct Seq_queue{element

int rear;

int front;

elementType data[max];

} Queue;it

//初始化队列io

void init(Queue *queue){class

queue->rear=0;

queue->front=0;

printf("初始化成功\n");

}循环

//入队列 void push_queue(Queue *queue,elementType x){

int temp = (queue->rear+1)%max;

if(temp==(queue->front)){

printf("队列满了\n");
 
return;

}

printf("%d %d\n",temp,queue->front);

queue->data[queue->rear]=x;

queue->rear=temp;

return;

}

void pop_queue(Queue *queue){

int temp = (queue->front+1)%max;

//队尾指针等于队头指针,队列为空 

if(queue->front==queue->rear){

	printf("栈已经空了\n");
	
	return;
}
printf("%d\n",queue->data[queue->front]); 

queue->front=temp;

return;

}

int main(){

Queue q;

init(&q);

for(int i=0;i<21;i++)

  push_queue(&q,i+1); 
  
	for(int i=0;i<21;i++)
	
  pop_queue(&q); 
  
return 0;

}

java实现

//使用循环队列,浪费一个存储空间来判断

public class seq_queue {

int default_size = 10;

int data[];

int front;

int rear;

//默认的数组长度
public  seq_queue(){

    rear=0;
	
    front=0;
	
    data =new int[default_size];
	
}
//给一个数组的长度

public seq_queue(int size){
    rear=0;
    front=0;
    default_size =size;
    data = new int[default_size];
}

//入队列
public void push_queue(int x){
    int temp = (rear+1)%default_size;
    if(temp==front){
        System.out.println("队列满了\n");
        return;
    }
    data[rear]=x;
    System.out.println("rear:"+data[rear]);
    rear=temp;

}

//出队列
public void pop_queue(){
    int temp = (front+1)%default_size;
    if(rear==front){
        System.out.println("队列已经空了\n");
        return;
    }
    System.out.println("出队列:"+data[front]);
    front=temp ;

}

public static void main(String[] args) {
    seq_queue queue = new seq_queue();
    for(int i=0;i<10;i++){
        queue.push_queue(i+1);

    }
    for(int i=0;i<10;i++){
     queue.pop_queue();
    }
}

}

相关文章
相关标签/搜索