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

java:栈操作(数组结构 + 链表结构)

2015-08-18 17:49 211 查看
package com.stack;

//链表结构的栈:元素的入栈、出栈都在首节点

//节点类型
class Node
{
Node next;  //指向下一节点
int data;  //数据域

public Node(int data)
{
this.data = data;
}
}

//链表结构的栈-元素的入栈、出栈都在首节点
class LinkedStack
{
Node head;  //首节点

//1.元素入栈,元素插在首节点前
public void push(int val)
{
Node newNode = new Node(val);
newNode.next = null;

if(head == null)  //首节点为空时
{
head = newNode;
}
else  //首节点不为空时
{
newNode.next = head;
head = newNode;
}
}

//2.元素出栈,删除首节点
public void pop()
{
int val;
if(isEmpty())  //栈为空时
{
System.out.println("栈已空");
return;
}
else   //栈不空
{
val = head.data;
System.out.print(val +" ");

head = head.next;
}
}

//3.判断栈是否为空
boolean isEmpty()
{
if(head == null)
return true;
else
return false;
}
}

public class TestLinkedStack
{
public static void main(String[] args)
{
LinkedStack s = new LinkedStack();

System.out.print("元素入栈:");
for(int i = 0; i < 5; i++)
{
s.push(i);  //入栈
System.out.print(i +" ");
}
System.out.println();

System.out.print("元素出栈:");
for(int i = 0; i < 5; i++)
{
s.pop();  //出栈
}
System.out.println();

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