[原创]数据结构学习笔记之二:栈
节点类:package stack;
public class Node {
Object element;
Node next;
Node(Object o)
{
this(o,null);
}
Node(Object o,Node n)
{
element=o;
next=n;
}
}
栈类:
package stack;
public class Stack {
private Node topNode;
Stack()
{
topNode=null;
}
/**
* 检查栈是否满。非数组表示的栈,永远不会满
* @return
*/
public boolean isFull()
{
return false;
}
/**
* 检查栈是否为空
* @return
*/
public boolean isEmpty()
{
return topNode==null;
}
/**
* 清空栈
*
*/
public void makeEmpty()
{
topNode=null;
}
/**
* 压入栈
* @param n 目标节点
*/
public void push(Node n)
{
n.next=topNode;
topNode=n;
}
/**
* 压入栈
* @param o 目标对象
*/
public void push(Object o)
{
push(new Node(o));
}
/**
* 获取栈顶节点
* @return
*/
public Node top()
{
return topNode;
}
/**
* 获取栈顶对象
* @return
*/
public Object topObject()
{
return topNode.element;
}
/**
* 删除栈顶
*
*/
public void pop()
{
topNode=topNode.next;
}
/**
* 获取栈顶并删除栈顶
* @return
*/
public Node topAndPop()
{
Node tempNode=topNode;
pop();
return tempNode;
}
}
测试类:
package stack;
public class Test {
public static void main(String[] args) {
Stack stack = new Stack();
String a[]={"abc","222","333","444"};
for(int i=0;i<a.length;i++)
stack.push(a);
/*遍历栈*/
while(!stack.isEmpty())
{
System.out.println(stack.topObject().toString());
stack.pop();
}
}
}
[ Last edited by wool王 on 2005-12-11 at 15:08 ] 测试运行结果:
444
333
222
abc 用户名: hjack [退出登录]
作者: wool王
评分: 积分 12 点
标题: [原创]数据结构学习笔记之二:栈
不错,加个分给你.
页:
[1]