用LinkedList类实现 模拟堆栈…

简介: 用 LinkedList类实现 模拟 堆栈的功能 原理: 1、堆栈: 先进后出 2、队列: 先进先出

第一部分  模仿队列的类



package com.baidu.sep3;



import java.util.Iterator;


import java.util.LinkedList;



public class DuiLie


{




public DuiLie()


{



llist = new LinkedList ();



}


// 队列的添加元素方法


public  void add(Object obj)


{


llist.addLast(obj);


}


// 队列的移除元素方法


public Object get()


{


return llist.removeFirst();


}



// 返回队列元素是否为空



public boolean isNull()


{


return llist.isEmpty();


}


// 返回迭代器


public Iterator iterator()


{


return llist.iterator();


}


private LinkedList  llist;


}





第二部分  模仿堆栈功能的类


package com.baidu.sep3;



import java.util.Iterator;


import java.util.LinkedList;



public class DuiZhan


{




//   1、堆栈:  先进后出


  public DuiZhan()


  {


  llist = new LinkedList();


  }


// 队列的添加元素方法


  public void add(Object obj)


  {


  llist.addFirst(obj);


  }


// 队列的移除元素方法


  public Object get()


  {


  return llist.removeFirst();


  }


 


 


// 返回队列元素是否为空



public boolean isNull()


{


return llist.isEmpty();


}



// 返回迭代器


public Iterator iterator()


{


return llist.iterator();


}


  private LinkedList llist;


}



第三部分 使用以验证正确性



package com.baidu.sep3;



import java.util.Iterator;




public class LinkedListDemo2


{


public static void main(String [] args)


{


// 原理:


//   1、堆栈:  先进后出


//   2、队列: 先进先出




DuiZhanTest();


DuiLieTest();






}



private static void DuiLieTest()


{



DuiLie duil = new DuiLie();


duil.add("1");


duil.add("2");


duil.add("3");


duil.add("4");




System.out.println("\r\n进队列的顺序:");


for(Iterator ir = duil.iterator();ir.hasNext();)


 System.out.print(ir.next()+" ");


System.out.println("\r\n"+"退出队列的顺序:");


while(!duil.isNull())


System.out.print(duil.get()+" ");


}



private static void DuiZhanTest()


{



DuiZhan duiz = new DuiZhan();



duiz.add("a");


duiz.add("b");


duiz.add("c");


duiz.add("d");



System.out.println("进堆栈的顺序:");


for(Iterator ir = duiz.iterator();ir.hasNext();)


 System.out.print(ir.next()+" ");




System.out.println("\r\n"+"退堆栈的顺序:");


while(!duiz.isNull())


System.out.print(duiz.get()+" ");


}




}




本人博客地址:http://blog.sina.com.cn/u/2533882563



欢迎 访问 留言 评论  相互学习

————————————————

版权声明:本文为CSDN博主「明明如月学长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/w605283073/article/details/46572577

相关文章
|
Java
实战小技巧9:List.subList使用不当StackOverflowError
相信每个小伙伴都使用过List.subList来获取子列表,日常使用可能没啥问题,但是,请注意,它的使用,很可能一不小心就可能导致StackOverflowError
351 0
|
5月前
|
编译器
【Bug记录】list模拟实现const迭代器类
【Bug记录】list模拟实现const迭代器类
|
7月前
|
Java
JavaSE——集合框架一(4/7)-List系列集合:LinkedList集合的底层原理、特有方法、队列、栈
JavaSE——集合框架一(4/7)-List系列集合:LinkedList集合的底层原理、特有方法、队列、栈
54 0
|
设计模式 存储 搜索推荐
模拟实现stack && queue/dequeue/适配器/优先级队列/仿函数
⭐学会适配器的使用,学会仿函数、了解deque,掌握stack、queue和优先级队列的底层实现方法
模拟实现stack && queue/dequeue/适配器/优先级队列/仿函数
|
存储 C++ 容器
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(一)
在上一章中,我们讲解了STL的栈和队列,本章我们来模拟实现一下它们。在讲解优先级队列的同时我们顺便把上一章提到的仿函数进行一个讲解,使用仿函数可以有效替换使用难以理解的函数指针的场景。我们通过仿函数 less 和 greater 去控制优先级队列的 Compare,从而能同时适配升序和降序。
146 0
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(一)
|
算法 编译器 C语言
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(二)
在上一章中,我们讲解了STL的栈和队列,本章我们来模拟实现一下它们。在讲解优先级队列的同时我们顺便把上一章提到的仿函数进行一个讲解,使用仿函数可以有效替换使用难以理解的函数指针的场景。我们通过仿函数 less 和 greater 去控制优先级队列的 Compare,从而能同时适配升序和降序。
127 0
【C++要笑着学】Functor 仿函数 | 模拟实现 stack & queue | 模拟实现优先级队列(二)
顺序堆栈和链式堆栈的实现,用一个数组实现两个堆栈的例子
顺序堆栈和链式堆栈的实现,用一个数组实现两个堆栈的例子
|
存储 Java
Java集合框架-Collection01-堆栈
Java集合框架-Collection01-堆栈
Java集合框架-Collection01-堆栈
|
Java
数组模拟环形(循环)队列(Java语言实现)
数组模拟环形(循环)队列(Java语言实现)
79 0