A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima_llt 高级黑马   /  2015-4-13 19:21  /  386 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

使用LinkedList模拟一个堆栈或者队列数据结构。
堆栈:先进后出  
队列:先进先出
思路:
1 建立一个队列类描述队列和堆栈
2 在主函数中测试
  1. import java.util.*;
  2. //队列类
  3. class DuiLie
  4. {
  5.         //使用LinkedList建立队列
  6.         private LinkedList link;

  7.         //构造函数建立一个链表
  8.         DuiLie()
  9.         {
  10.                 link = new LinkedList();
  11.         }

  12.         //1 队列添加方法
  13.         public void add(Object obj)
  14.         {
  15.                 //用LinkedList特有的添加方法:头插法
  16.                 link.offerFirst(obj);
  17.         }

  18.         //2 队列取出方法
  19.         public Object get()
  20.         {
  21.                 //用LinkedList特有的获取方法
  22.                 return link.pollLast();
  23.         }

  24.         //3 队列判空方法
  25.         public boolean isEmpty()
  26.         {
  27.                 //调用LinkedList判空方法
  28.                 return link.isEmpty();
  29.         }

  30.         //4 打印当前队列元素
  31.         public void print()
  32.         {
  33.                 System.out.println("队列内容:"+link);
  34.         }
  35. }

  36. //堆栈类
  37. class duiZhan
  38. {
  39.         private LinkedList link;

  40.         duiZhan()
  41.         {
  42.                 link = new LinkedList();
  43.         }

  44.         //堆栈添加方法
  45.         public void add(Object obj)
  46.         {
  47.                 link.offerFirst(obj);
  48.         }

  49.         //堆栈获取方法
  50.         public Object get()
  51.         {
  52.                 return link.pollFirst();
  53.         }

  54.         //堆栈判空方法
  55.         public boolean isEmpty()
  56.         {
  57.                 return link.isEmpty();
  58.         }

  59.         //4 打印当前堆栈元素
  60.         public void print()
  61.         {
  62.                 System.out.println("堆栈内容:"+link);
  63.         }       
  64. }
  65. class LinkedListTest
  66. {
  67.         public static void main(String[] args)
  68.         {
  69.                 //队列测试
  70.                 duiLieDemo();

  71.                 //堆栈测试
  72.                 duiZhanDemo();
  73.                
  74.         }

  75.         //队列测试
  76.         public static void duiLieDemo()
  77.         {
  78.                 //建立一个队列
  79.                 DuiLie dl = new DuiLie();

  80.                 //调用添加方法
  81.                 dl.add("num01");
  82.                 dl.add("num02");
  83.                 dl.add("num03");
  84.                 dl.add("num04");
  85.                
  86.                 //打印当前队列
  87.                 dl.print();

  88.                 //调用队列取出方法
  89.                 while(!dl.isEmpty())
  90.                         System.out.println(dl.get()+"--出队");               
  91.         }

  92.         //堆栈测试
  93.         public static void duiZhanDemo()
  94.         {
  95.                 //建立一个堆栈
  96.                 duiZhan dz = new duiZhan();

  97.                 //调用堆栈添加方法
  98.                 dz.add("num05");
  99.                 dz.add("num06");
  100.                 dz.add("num07");
  101.                 dz.add("num08");

  102.                 //打印当前堆栈
  103.                 dz.print();

  104.                 //调用堆栈取出方法
  105.                 while(!dz.isEmpty())
  106.                         System.out.println(dz.get()+"--出栈");
  107.         }
  108. }
复制代码




LinkedList建立堆栈测试.jpg (100.47 KB, 下载次数: 0)

LinkedList建立堆栈测试.jpg

3 个回复

倒序浏览
这不是毕姥爷讲的么!?

点评

是的,我听完课后自己照着他的思路写了一遍。  发表于 2015-4-13 21:57
回复 使用道具 举报
恩呢,挺好,能够看完视频再自己独立的敲出来,值得我们去学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马