第一次写东西,刚自己练练手模拟了下堆栈和队列的的类,希望能给自己一点点激励。以后希望自己能多写点JAVA和JAVASCRIPT的东西在这上面,也是希望能和大家多多交流,互相进步。
堆栈:
public class LinkedStack<T> {
private static class Node<U>{
U item;
Node<U> next;
Node(){
this.item=null;
this.next=null;
}
Node(U item,Node<U> next){
this.item=item;
this.next=next;
}
boolean end(){return this.item==null&&this.next==null;}
}
private Node<T> top=new Node<T>();
/*
* 放进元素
*/
public void push(T item){
top=new Node(item,top);
}
/*
* 取出元素
*/
public T pop(){
T item=top.item;
if(!top.end()){
top=top.next;
}
return item;
}
}
队列:
public class MyQueue<T>{
private static class Node <U>{
U item;
Node<U> previous;
Node(){
this.item=null;
this.previous=null;
}
Node(U item,Node<U> previous){
this.item=item;
this.previous=previous;
}
boolean end(){return this.previous==null;}
}
private Node<T> bottom=new Node<T>();
private int length=0;
/*
* 放进元素
*/
public void push(T item){
if(length==0){
this.bottom.item=item;
length++;
}else{
Node<T> node =new Node<T>(item, null);
Node<T> top=this.bottom.previous;
if(top==null){
this.bottom.previous=node;
}else{
Node<T> next=null;
while(top!=null){
next=top;
top=top.previous;
}
next.previous=node;
}
}
}
/*
* 取出元素
*/
public T pop(){
T item=bottom.item;
if(!bottom.end()){
this.bottom=bottom.previous;
}
return item;
}
}
分享到:
相关推荐
这是一篇使用java模拟队列实现的程序的课程设计,包含了队列界面的设计以及队列数据结构的模拟实现,是java学习的很好的参照,另外,包含了部分的源代码,具体源代码在其它文件夹。
使用LinkedList模拟堆栈操作,包括进栈、出栈,入队、出队
在这里假设汽车不能从便道上开走,试设计这样一个停车厂模拟管理程序。 [概要设计] 1.定义Stack接口 2.设计停车场堆栈ParkStack 3.定义Queue接口 4.设计等待队列WaitQueue 5.定义结点类Node 6.搭建管理界面
题目:两个栈模拟一个队列,剑指offer书中的题目,用java写的
JavaSE Java通用培训 使用Java-I的OOP 第一天 算法,Java安装和体系结构 第二天 关键字,变量,运算符,数据...堆栈,队列,泛型,集合框架-ArrayList,LinkedList 第三天 集合框架-集合,哈希图 第四天 队列,双
java洗车行源码CSC-103-Lab4 跑道模拟器 CSC103 秋季 2013 萨拉韦克斯勒 作业 #4 此作业由一组两人完成 • ...页中描述的洗车模拟提供了一个模型,您的程序将以此模型为...书中的堆栈类:LinkedStack.java 书中的节点类:
我不了解堆栈/队列,但最终对堆栈进行了反向工程。 我对大规模的游戏计算机仿真产生了兴趣,因此我发现用Java编写代码很有趣。 在对基本游戏进行编码之后,我添加了原始游戏中不存在的变体,以探索各种不同的策略。...
用堆栈模拟计算器 为什么列表、堆栈泛型不能是原始类型? ? ? 队列 java的哪个实现用得最多??? 检测周期 链表 有根的树 堆 优先队列 堆排序 第 K 个元素 图形 图表示 邻接表 邻接矩阵 一个矩阵(一个数组) ...
本课程向我介绍了数据结构,包括列表、二叉树、红黑树、2-3 树、堆、图、堆栈和队列。 我学习了各种算法,包括插入排序、选择排序、归并排序、快速排序和 Dijkstra 的寻路算法。 我学习了分析时间和空间复杂性的基础...
6.3.3 模拟堆栈和队列操作的方法 6.3.4 使用splice()方法添加和删除数组元素 6.3.5 修改length属性更改数组 6.3.6 调用Array对象的方法生成字符串 6.3.7 连接两个数组 6.3.8 常见属性和方法汇总 6.4 Date对象 6.4.1 ...
6.3.3 模拟堆栈和队列操作的方法 6.3.4 使用splice()方法添加和删除数组元素 6.3.5 修改length属性更改数组 6.3.6 调用Array对象的方法生成字符串 6.3.7 连接两个数组 6.3.8 常见属性和方法汇总 6.4 Date对象 6.4.1 ...
数据分析模拟 具有以下选项的菜单驱动程序: ... 2-登录 3-访问网站 4-按时间顺序检查访问的网站的浏览历史记录 ...必须使用至少一个堆栈,一个队列,一个2D数组,用于分隔工作的方法(主方法不应包含超过20行的代码)。
7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 小结 术语 自测练习 自测练习答案 练习 第8章 运算符重载 8.1 简介 8.2 运算符重载的基础 8.3 运算符重载的限制 8.4 用作类成员与友元函数的...
7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 小结 术语 自测练习 自测练习答案 练习 第8章 运算符重载 8.1 简介 8.2 运算符重载的基础 8.3 运算符重载的限制 8.4 用作类成员与友元函数的...
掌握队列、堆栈和图的基本表达与操作是必需的,至于树,我个人觉得需要建树的问题有但是并不多。(但是树往往是很重要的分析工具)除此之外,排序和查找并不需要对所有方式都能很熟练的掌握,但你必须保证自己对于...
1.9 Java、Internet与万维网--------------------------------------------7 1.10 其它高级语言------------------------------------------------------8 1.11 结构化编程-----------------------------------...