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

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

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

服務器之家 - 編程語言 - Java教程 - java 數據結構之棧與隊列

java 數據結構之棧與隊列

2020-12-07 11:20gamer_gyt Java教程

這篇文章主要介紹了java 數據結構之棧與隊列的相關資料,這里對java中的棧和隊列都做出實現實例來幫助大家理解學習數據結構,需要的朋友可以參考下

java 數據結構隊列

一:對列

隊列是一種先進先出的數據結構

實現代碼:

?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package Queue;
 
/*
 * 使用java構建隊列,并模擬實現隊列的入隊和出對方法
 */
 
public class Queue {   //隊列類
 
  private int maxSize; //定義隊列的長度
  private int[] arrQueue;   //隊列
  private int rear;   //定義隊列的尾指針
  private int front;  //定義隊列的頭指針
  private int empty; //元素的個數
   
  public Queue(int s)  //初始化構造函數
  {
    maxSize = s;
    arrQueue = new int[s];
    rear = -1;
    front=0;
    empty = 0;
  }
   
  //實現插入方法
  public void insert(int m)
  {
    if(rear == maxSize-1//處理循環
      rear = -1;   
    arrQueue[++rear] = m;  //對尾指針加一,把值放在隊列結尾
    empty++;   //隊列元素個數加1
    System.out.println("隊列入隊元素 為:" + m);
  }
   
  //實現出棧的方法,即取得隊列的頭元素
  public int remove()
  {
    int temp = arrQueue[front++]; //將棧頂元素賦值給temp,棧頂指針加1
    if(front == maxSize) //處理循環
      front = 0;
    empty--; //元素個數-1
    return temp;
  }
   
  //判斷隊列是否為空
  public boolean isEmpty()
  {
    return (empty==0);
  }
   
  //判斷對列是否為滿
  public boolean isFull()
  {
    return (empty == maxSize);
  }
   
  //返回隊列長度
  public int qLong()
  {
    return empty;
  }
   
  public static void main(String[] args) {
    Queue q = new Queue(5); //初始化隊列為5個元素
     
    q.insert(1);
    q.insert(2);
    q.insert(3);
    q.insert(4);
    q.insert(5);
     
    int t1 = q.remove();
    System.out.println("隊列元素出隊:" + t1);
    int t2 = q.remove();
    System.out.println("隊列元素出隊:" + t2);
     
    System.out.println("隊列是否為空:" + q.isEmpty());
    System.out.println("隊列是否為滿:" + q.isFull());
    System.out.println("隊列的長度:" + q.qLong());
  }
   
}

二:棧

棧是一種先進后出的數據結構

1:使用數組模擬棧

?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package Statck;
/*
 * 使用java構建棧,并模擬實現棧的入棧和出棧方法
 * 使用數組實現
 */
 
public class Statck1 {
 
  private int maxSize;   //棧的最多元素數
  private int top;  //棧頂指針
  private int len;   //棧的深度
  private int[] arrStack; // 模擬棧
   
  //棧的初始化
  public Statck1(int s){
    maxSize = s;
    len =0;
    top= -1;
    arrStack = new int[s];
  }
   
  //獲取棧的長度
  public int getLen(){
    return len;
  }
   
  //獲取當前棧還能插入多少個f元素
  public int getLeaveLen(){
    return (maxSize-len);
  }
  //判斷棧是否滿
  public boolean isFull(){
    return (len==maxSize);
  }
   
  //判斷棧是否為空
  public boolean isEmpty(){
    return (len ==0);
  }
   
  //元素入棧
  public void inStack(int s)
  {
    arrStack[++top] = s; //棧頂指針加1,入棧
    System.out.println("元素入棧:" + s);
    len ++ ;//棧深度+1
  }
   
  //元素出棧
  public int outStack()
  {
    int temp = arrStack[top--];//賦值之后減1
    System.out.println("元素出棧:" + temp);
    len--;  //棧深度-1
    return temp;
  }
   
  public static void main(String[] args) {
    Statck1 s = new Statck1(5);
     
    s.inStack(1);
    s.inStack(2);
    s.inStack(3);
    s.inStack(4);
    s.inStack(5);
     
    s.outStack();
    s.outStack();
    System.out.println("棧的長度:" + s.getLen());
    System.out.println("還能入棧元素個數:" + s.getLeaveLen());
    System.out.println("棧的是否為空:" + s.isEmpty());
    System.out.println("棧的是否為滿:" + s.isFull());
  }
}

2:使用鏈表模擬棧

?
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package Statck;
 
import java.util.ArrayList;
import java.util.EmptyStackException;
import java.util.List;
 
/*
 * 使用java構建棧,并模擬實現棧的入棧和出棧方法
 * 使用鏈表實現
 */
 
public class Statck2<E extends Object> { 
   
  private List<E> statck = new ArrayList<E>(); 
   
  public Statck2(){
       //棧的初始化
  }
   
  //清空棧
  public void clear(){
    statck.clear();
    System.out.println("清空棧..........");
  }
  //判斷棧是否為空
  public boolean isEmpty(){
    return statck.isEmpty();
  }
  //獲取棧頂元素
  public E getTop(){
    if(isEmpty())
      return null;
    return statck.get(0);
  }
   
  //彈出棧操作
  public E pop(){
    if (isEmpty()) 
      throw new EmptyStackException(); 
    System.out.println(statck.size() + "\t 出棧");
    return statck.remove(statck.size() - 1); 
  }
   
  //壓入棧操作
  public void push(E e){
    statck.add(e);
    System.out.println(e + "\t 入棧");
  }
   
  //獲取當前棧的深度
  public int getStatckSize(){
    if(isEmpty())
      throw new EmptyStackException();
    return statck.size();
  }
   
  public static void main(String[] args) {
    Statck2 s = new Statck2();
    s.clear();      //清空棧
    System.out.println("當前棧是否為空:" + s.isEmpty());
    s.push(1);
    s.push(2);
    s.push(3);
     
    s.pop();
    System.out.println("當前棧的深度為:" + s.getStatckSize());
    System.out.println("當前棧頂元素為:" + s.getTop());
  }
   
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持,如有疑問請留言或者到本站社區交流討論,大家共同進步!

原文鏈接:http://blog.csdn.net/gamer_gyt/article/details/51457106

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美精品一区二区三区在线播放 | 国产在线观看一区二区三区 | 久草热8精品视频在线观看 毛片黄片免费观看 | 欧美一区二区三区视频在线观看 | 欧美成人激情视频 | 亚洲午夜网站 | 男女18免费网站视频 | 亚洲成人激情在线 | 午夜久久久久久久 | 91短视频版在线观看www免费 | 国产精品成人3p一区二区三区 | 99久久婷婷国产精品综合 | 亚洲视频在线免费观看 | 亚洲一区中文 | 日韩欧美中文字幕一区二区三区 | 久久爱综合| 夜夜嗨av色一区二区不卡 | 亚洲综合无码一区二区 | 青青青国产精品一区二区 | 国产亲子乱弄免费视频 | 福利在线观看 | а天堂中文最新一区二区三区 | 精品成人久久 | 日本黄a三级三级三级 | 欧美a视频 | 亚洲美女网址 | 成人免费视频网址 | 国产深夜视频在线观看 | 中文字幕亚洲一区二区va在线 | 99视频在线免费观看 | 日韩午夜电影 | 亚洲欧美激情精品一区二区 | 亚洲一区二区av | 亚洲国产精品久久久久婷婷老年 | 国产高清视频在线 | 亚洲综合色视频在线观看 | 91精品国产91久久综合桃花 | 亚洲欧美一级久久精品 | 99re免费视频精品全部 | 欧美三区 | 永久免费av |