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

2025-05-29 0 104

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;

}

}

实现队列:同一样

链表方法:

?

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;

}

}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/qq442270636/article/details/72085631

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java 数据结构中栈和队列的实例详解 https://www.kuaiidc.com/114443.html

相关文章

发表评论
暂无评论