日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构(七)---循环队列的实现---java版

發(fā)布時間:2024/1/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构(七)---循环队列的实现---java版 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

---------------------------------------------接口定義----------------------------------

package com.cn.hbut.dao;


public interface Queue {
public void clear();
public int length();
public boolean full();
public boolean empty();
//入隊
public boolean enque(Object e);
//出隊,需要刪除第一個元素
public Object dlque();
//獲取隊頭元素
public Object getf();

}


---------------------------------------------具體的實現(xiàn)--------------------------------

package com.cn.hbut.daoImpl;

import com.cn.hbut.dao.Queue;
/**
?* @author Administrator
?* 循環(huán)隊列的實現(xiàn)
?*/
public class SqQueue implements Queue{
Object [] elem;
int front,rear;
int len;


public SqQueue() {
len =100;
elem = new Object[len];
front=rear=0;
}
public SqQueue(int maxsz) {
len = maxsz;
elem = new Object[len];
front = rear =0;
}

@Override
public void clear() {
front = rear =0;
}


@Override
public int length() {
//循環(huán)隊列需要考慮全部隊滿后全部出隊,再入隊后rear為0,而front為len-1
return (rear-front+len)%len;?
}
@Override
public boolean full() {
return (rear+1)%len==front;
}
@Override
public boolean empty() {
return front==rear;
}
@Override
public boolean enque(Object e) {
if(full()){
return false;
}
elem[rear]=e;
rear = rear+1%len;
return true;
}
//元素出隊,刪除隊首元素
@Override
public Object dlque() {
if(empty()){
return null;
}
Object obj =elem[front];
front = (front+1)%len;
return obj;
}


@Override
public Object getf() {
if(empty()){
return null;
}
return elem[front];
}
//--------------------------------測試循環(huán)隊列------------------------------
public static void main(String[] args) {
//創(chuàng)建一個循環(huán)隊列,最多容納元素數(shù)8
SqQueue sque = new SqQueue(8);
//開始入隊
sque.enque(1);
sque.enque(2);
sque.enque(3);
sque.enque(4);
System.out.println("隊列元素個數(shù):"+sque.length());
System.out.println("隊首元素:"+sque.getf());
System.out.println("隊列是否為空:"+sque.empty());
System.out.println("隊列是否已滿"+sque.full());
System.out.println("當前出隊的元素:"+sque.dlque());
System.out.println("出隊后的隊首元素:"+sque.getf());

}



}



測試結(jié)果:

隊列元素個數(shù):4
隊首元素:1
隊列是否為空:false
隊列是否已滿false
當前出隊的元素:1
出隊后的隊首元素:2

總結(jié)

以上是生活随笔為你收集整理的数据结构(七)---循环队列的实现---java版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。