您的位置:首页 > 编程语言 > Java开发

java实现链栈

2015-07-13 22:36 411 查看
前面学习了java实现顺序栈:/article/5114100.html

接下来,学习java实现链栈。

链栈类代码:

package linkedstack;

public class LinkStack {

private Element base;
private Element top;

class Element
{
public Object data;
public Element next;
}

/**
* 初始化栈
* */
void initStack()
{
top = new Element();
base = new Element();
top.data=null;
top.next=base;
base.data=null;
base.next=null;
}

/**
* 入栈
* */
void push(Object o)
{
Element e = new Element();
e.data = o;
if(top.next==base)//第一次入栈操作
{
e.next=base;
top.next=e;
}else
{
e.next=top.next;
top.next=e;
}

}

/**
* 出栈
* */
void pop()
{
if(top.next==base)
{
System.out.println("栈中没有元素!");
}else
{
System.out.println("出栈操作"+top.next.data);
top.next=top.next.next;
}
}

/**
* 打印栈
* */
void print()
{
System.out.print("打印栈:");
Element temp =top;
while(temp.next!=base)
{
System.out.print(temp.next.data+"\t");
temp =temp.next;
}
System.out.println();
}
}


链栈测试类代码:

package linkedstack;

public class LinkStackMain {

public static void main(String[] args) {
LinkStack lStack = new LinkStack();
lStack.initStack();
lStack.pop();
lStack.push(1);
lStack.push(2);
lStack.push(3);
lStack.push(4);
lStack.print();

lStack.pop();
lStack.pop();
lStack.print();

lStack.pop();
lStack.pop();
lStack.print();
lStack.pop();
}

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: