国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于Java數組實現循環隊列的兩種方法小結

基于Java數組實現循環隊列的兩種方法小結

2021-03-07 12:09yjbjingcha Java教程

下面小編就為大家分享一篇基于Java數組實現循環隊列的兩種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

用java實現循環隊列的方法:

1、添加一個屬性size用來記錄眼下的元素個數。

目的是當head=rear的時候。通過size=0還是size=數組長度。來區分隊列為空,或者隊列已滿。

2、數組中僅僅存儲數組大小-1個元素,保證rear轉一圈之后不會和head相等。也就是隊列滿的時候。rear+1=head,中間剛好空一個元素。

當rear=head的時候。一定是隊列空了。

隊列(queue)兩端同意操作的類型不一樣:

能夠進行刪除的一端稱為隊頭,這樣的操作也叫出隊dequeue;

能夠進行插入的一端稱為隊尾,這樣的操作也叫入隊enqueue。

隊列的示意圖

基于Java數組實現循環隊列的兩種方法小結

實現隊列時,要注意的是假溢出現象。如上圖的最后一幅圖。

如圖所看到的的假溢出現象

基于Java數組實現循環隊列的兩種方法小結

解決的方法:使用鏈式存儲,這顯然能夠。在順序存儲時。我們常見的解決的方法是把它首尾相接,構成循環隊列。這能夠充分利用隊列的存儲空間。

循環隊列示意圖:

基于Java數組實現循環隊列的兩種方法小結

在上圖中。front指向隊列中第一個元素。rear指向隊列隊尾的下一個位置。

但依舊存在一個問題:當front和rear指向同一個位置時,這代表的是隊空還是隊滿呢?大家能夠想象下這樣的情景。

解決這種問題的常見做法是這種:

使用一標記,用以區分這樣的易混淆的情形。

犧牲一個元素空間。當front和rear相等時,為空。當rear的下一個位置是front時。為滿。

例如以下圖:

基于Java數組實現循環隊列的兩種方法小結

以下我們給出循環隊列,并採用另外一種方式,即犧牲一個元素空間來區分隊空和隊滿的代碼.

幾個重點:

1、front指向隊頭。rear指向隊尾的下一個位置。

2、隊為空的推斷:front==rear;隊為滿的推斷:(rear+1)%maxsize==front。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.io.*;
  public class queuearray { 
  object[] a; //對象數組,隊列最多存儲a.length-1個對象 
  int front; //隊首下標 
  int rear;  //隊尾下標 
  public queuearray(){ 
    this(10); //調用其他構造方法 
  
  public queuearray(int size){ 
    a = new object[size]; 
    front = 0
    rear =0
  
  /**
   * 將一個對象追加到隊列尾部
   * @param obj 對象
   * @return 隊列滿時返回false,否則返回true
   */
  public boolean enqueue(object obj){ 
    if((rear+1)%a.length==front){ 
      return false
    
    a[rear]=obj; 
    rear = (rear+1)%a.length; 
    return true
  
  /**
   * 隊列頭部的第一個對象出隊
   * @return 出隊的對象,隊列空時返回null
   */
  public object dequeue(){ 
    if(rear==front){ 
      return null
    
    object obj = a[front]; 
    front = (front+1)%a.length; 
    return obj; 
  
  public static void main(string[] args) { 
    queuearray q = new queuearray(4); 
    system.out.println(q.enqueue("張三")); 
    system.out.println(q.enqueue("李斯")); 
    system.out.println(q.enqueue("趙五")); 
    system.out.println(q.enqueue("王一"));//無法入隊列,隊列滿 
    for(int i=0;i<4;i++){ 
      system.out.println(q.dequeue()); 
    
  
}

以上這篇基于java數組實現循環隊列的兩種方法小結就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/yjbjingcha/p/7239085.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩精品在线免费视频 | 久久久精 | 久久精品亚洲精品 | 日韩欧美不卡 | 久久网站热最新地址 | 成人精品视频免费 | 天天干天天看天天操 | 日韩字幕在线 | 欧美人成在线视频 | 国产精品欧美一区二区三区 | 国产在线一区二区 | 欧美精品亚洲精品日韩精品 | 亚洲精品久久久久一区二区三区 | 中文字幕精品一区二区三区精品 | 中文字幕乱码亚洲精品一区 | 精品亚洲国产成av人片传媒 | 国偷自产一区二区免费视频 | 久久精品国产一区二区三区 | 18视频在线观看网站 | 精品福利视频网站 | 成人免费视频7777777 | 日韩成人影片 | 色图自拍偷拍 | 午夜精品久久久久久久久久久久 | 精品电影 | 成人在线视频免费观看 | 日韩精品一区二区三区视频播放 | 国产精品国产三级国产aⅴ中文 | 国产精品成人在线观看 | 国产精品美女www爽爽爽软件 | 五月天婷婷激情 | 亚洲国产区 | 亚洲 中文 欧美 日韩 在线观看 | 男女视频网址 | 成人在线免费网站 | 亚洲国产精品美女 | 91精品免费在线观看 | www久久精品 | 精品国产欧美一区二区三区成人 | 久久亚洲一区二区三区四区 | 97人人爱|