用List实现栈和对列

栈实现

栈功能:后进先出,进栈,出栈,返回栈元素;

 
  1. package com.test.thread;

  2.  
  3. import java.util.LinkedList;

  4. import java.util.Stack;

  5.  
  6. public class MyStack {

  7. /* 声明容器 */

  8. private LinkedList<Object> stack = new LinkedList<>();

  9.  
  10. public MyStack() {

  11. }

  12.  
  13. /* 入栈,头部添加元素 */

  14. public void push(Object obj){

  15. stack.addFirst(obj);

  16. }

  17.  
  18. /* 出栈,头部移除元素 */

  19. public Object pop() {

  20. if(isEmpty()) {

  21. return null;

  22. }

  23. return stack.removeFirst();

  24. }

  25.  
  26. /* 返回栈口元素 */

  27. public Object peek() {

  28. if(isEmpty()) {

  29. return null;

  30. }

  31. return stack.getFirst();

  32. }

  33.  
  34. /* 清空 */

  35. public void clear() {

  36. stack.clear();

  37. }

  38.  
  39. /* 判断集合是否为空 */

  40. public boolean isEmpty() {

  41. return stack.isEmpty();

  42. }

  43.  
  44. @Override

  45. public String toString() {

  46. return stack.toString();

  47. }

  48.  
  49. public static void main(String[] args) {

  50. Stack stack = new Stack();

  51. stack.push("a");

  52. stack.push("b");

  53. stack.push("c");

  54. stack.push("d");

  55.  
  56. System.out.println("原生Stack操作:");

  57. System.out.println(stack);

  58. System.out.println(stack.peek());

  59. System.out.println(stack);

  60. System.out.println(stack.pop());

  61. System.out.println(stack);

  62.  
  63. MyStack myStack = new MyStack();

  64. myStack.push("a");

  65. myStack.push("b");

  66. myStack.push("c");

  67. myStack.push("d");

  68.  
  69. System.out.println("MyStack操作:");

  70. System.out.println(myStack);

  71. System.out.println(myStack.peek());

  72. System.out.println(myStack);

  73. System.out.println(myStack.pop());

  74. System.out.println(myStack);

  75. }

  76. }

队列实现

队列特点:先进先出;

 
  1. package com.test.thread;

  2.  
  3. import java.util.LinkedList;

  4. import java.util.concurrent.ArrayBlockingQueue;

  5.  
  6. public class MyQueue {

  7.  
  8. /* 声明容器 */

  9. private LinkedList<Object> queue = new LinkedList<>();

  10.  
  11. public MyQueue() {

  12. }

  13.  
  14. /* 判断是否为空 */

  15. public boolean isEmpty() {

  16. return queue.isEmpty();

  17. }

  18.  
  19. /* 清空 */

  20. public void clear() {

  21. queue.clear();

  22. }

  23.  
  24. @Override

  25. public String toString() {

  26. return queue.toString();

  27. }

  28.  
  29. /* 入列 */

  30. public void put(Object obj) {

  31. queue.addLast(obj);

  32. }

  33.  
  34. /* 出列 */

  35. public Object get() {

  36. if(isEmpty()) {

  37. return null;

  38. }

  39. return queue.removeFirst();

  40. }

  41.  
  42. /* 返回头部元素 */

  43. public Object getTop() {

  44. if(isEmpty()) {

  45. return null;

  46. }

  47. return queue.peekFirst();

  48. }

  49. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值