网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  java中linkedlist 集合类实现栈和队列     
  文章作者:未知  文章来源:水木森林  
  查看:65次  录入:管理员--2007-11-17  
 

    栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。

   linkedlist数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素,和数组的顺序存储结构(如:arraylist)相比,插入和删除比较方便,但速度会慢一些。

栈的定义
     栈(stack)是限制仅在表的一端进行插入和删除运算的线性表。
  (1)通常称插入、删除的这一端为栈顶(top),另一端称为栈底(bottom)。
  (2)当表中没有元素时称为空栈。
  (3)栈为后进先出(last in first out)的线性表,简称为lifo表。
     栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。

实现代码:
package com.gc.list;
import java.util.*;
public class mystack {

 private linkedlist ll=new linkedlist();
 
 public void push(object o){
  ll.addfirst(o);
 }
 public object pop(){
  return ll.removefirst();
 }
 
 public object peek(){
  return ll.getfirst();
 }
 
 public boolean empty(){
  return ll.isempty();
 }
 
 public static void main(string[] args){
  mystack ms=new mystack();
  ms.push("zhangsan");
  ms.push("lisi");
  ms.push("wangwu");
  
  system.out.println(ms.pop());
  system.out.println(ms.peek());
  system.out.println(ms.pop());
  system.out.println(ms.empty());
 }
}

队列定义
     队列(queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表

  (1)允许删除的一端称为队头(front)。
  (2)允许插入的一端称为队尾(rear)。
  (3)当队列中没有元素时称为空队列。
  (4)队列亦称作先进先出(first in first out)的线性表,简称为fifo表。

实现代码:
package com.gc.list;
import java.util.*;
public class myqueue {

 private linkedlist ll=new linkedlist();
 public void put(object o){
  ll.addlast(o);
 }
 //使用removefirst()方法,返回队列中第一个数据,然后将它从队列中删除
 public object get(){
  return ll.removefirst();
 }
 
 public boolean empty(){
  return ll.isempty();
 }
 
 public static void main(string[] args){
  myqueue mq=new myqueue();
  mq.put("zhangsan");
  mq.put("lisi");
  mq.put("wangwu");
  
  system.out.println(mq.get());
  system.out.println(mq.get());
  system.out.println(mq.get());
  system.out.println(mq.empty());
  
 }
}

 
 
上一篇: struts中关于用户权限限定的建议    下一篇: 花二十分钟教你ruby快速入门
  相关文档
[精品网址]java学习网站 11-17
java初学者实践教程11-泛型声明 11-17
sun授权asec-java培训中心名录 11-17
学习wsad、rose、websphere的基本用法 11-17
java线程简介(其它线程api详细信息) 11-17
jdbc连接sql2000详细流程 11-17
whatisaspectj 11-17
java中文问题详解(推荐) 11-17
jox(关于java处理xml文档的讨论) 11-17
java学习:了解什么叫做javabean 11-16
存取程序状态的几种方法——java i/o应用杂谈 11-17
接口和抽象类有什么区别? 11-17
小议debian linux 下 jdk 的配置方法 11-17
Java EE 5.0能取代Struts,Spring和Hibernate吗? 04-14
java咖啡馆(11):java插件技术 11-16
一个java先行者的追寻之路 11-17
java对数字证书的常用操作 11-16
引用造型protected和private的困惑 11-17
java的interface观念与c++多重继承的比较 11-17
JAVA基础:Java语言的违例控制简析 08-06
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息