Rumah > Java > javaTutorial > Java数据结构中栈与队列的分析

Java数据结构中栈与队列的分析

黄舟
Lepaskan: 2017-09-28 09:44:13
asal
1567 orang telah melayarinya

这篇文章主要介绍了java 数据结构中栈和队列的实例详解的相关资料,主要使用数组与线性表的方法来实现,需要的朋友可以参考下

java 数据结构中栈和队列的实例详解

栈和队列是两种重要的线性数据结构,都是在一个特定的范围的存储单元中的存储数据。与线性表相比,它们的插入和删除操作收到更多的约束和限定,又被称为限定性的线性表结构。栈是先进后出FILO,队列是先进先出FIFO,但是有的数据结构按照一定的条件排队数据的队列,这时候的队列属于特殊队列,不一定按照上面的原则。

实现栈:采用数组和链表两种方法来实现栈

链表方法


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

package com.cl.content01;

/*

 * 使用链表来实现栈

 */

public class Stack<E> {

  Node<E> top=null;

   

  public boolean isEmpty(){

 return top==null;

  }

  /*

  * 出栈

  */

  public void push(E data){

 Node<E> nextNode=new Node<E>(data);

 nextNode.next=top;

 top=nextNode;

  }

  /*

  * 出栈

  */

  public E pop(){

 if(this.isEmpty()){

 return null;

 }

 E data =top.datas;

 top=top.next;

 return data;

  }

}

/*

 * 链表

 */

class Node<E>{

Node<E> next=null;

E datas;

public Node(E datas){

this.datas=datas;

}

}

Salin selepas log masuk

实现队列:同栈一样

链表方法:


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

package com.cl.content01;

 

 

public class MyQueue<E> {

  private Node<E> head=null;

  private Node<E> tail=null;

  public boolean isEmpty(){

  return head==null;

  }

  public void put(E data){

  Node<E> newNode=new Node<E>(data);

  if(head==null&&tail==null)

  head=tail=newNode;

  else

  tail.next=newNode;

    tail=newNode;

  }

  public E pop(){

  if(this.isEmpty())

  return null;

  E data=head.data;

  head=head.next;

  return data;

  }

  public int size(){

  int n=0;

  Node<E> t=head;

  while(t!=null){

  n++;

  t=t.next;

  }

  return n;

  }

  public static void main(String[] args) {

MyQueue<Integer> q=new MyQueue<Integer>();

q.put(1);q.put(3);q.put(2);

System.out.println(q.pop());

System.out.println(q.size());

System.out.println(q.pop());

}

}

class Node<E>{

Node<E> next=null;

E data;

public Node(E data){

this.data=data;

}

}

Salin selepas log masuk

Atas ialah kandungan terperinci Java数据结构中栈与队列的分析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Bolehkah java digunakan sebagai bahagian belakang web?
daripada 1970-01-01 08:00:00
0
0
0
Pasang JAVA
daripada 1970-01-01 08:00:00
0
0
0
Tidak dapat memasang java
daripada 1970-01-01 08:00:00
0
0
0
Bagaimanakah php melaksanakan penyulitan sha1 java?
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan