用LinkedList类实现 模拟堆栈…
2015-06-20 10:37
363 查看
用 LinkedList类实现 模拟 堆栈的功能
原理:
1、堆栈: 先进后出
2、队列: 先进先出
运行结果截图:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
模拟堆栈的功能" TITLE="用LinkedList类实现 模拟堆栈的功能" />
第一部分 模仿队列的类
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
欢迎 访问 留言 评论 相互学习
原理:
1、堆栈: 先进后出
2、队列: 先进先出
运行结果截图:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
模拟堆栈的功能" TITLE="用LinkedList类实现 模拟堆栈的功能" />
第一部分 模仿队列的类
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
欢迎 访问 留言 评论 相互学习
相关文章推荐
- 传智播客 java学习路线图
- 图书管理系统修改前的思路(开发文…
- java 温习之字符串(去除字符…
- Android中实现静态的默认安装和卸载应用
- java 温习之字符串(获取两个…
- java 温习之字符串(统计字串…
- 图书管理系统(mysql部分) 初步设…
- mysql 数据库优化(未完)
- mysql 存储过程的一个bug或者是我…
- mysql 学习总结
- mysql 索引(index)
- mysql 存储过程(procedure)
- mysql 存储引擎  和 事务
- mysql 触发器的创建、问题、解决方…
- mysql 触发器的创建、问题、解决方…
- mysql 命令行操作另外一种进入方式
- mysql 命令行操作另外一种进入方式
- mysql 字符集(CHARACTER SET)和…
- mysql 视图
- MyEclipse使用手册(详细版)