java 代码
- /**
- *
- */
- package link;
- /**
- * @author sunxboy
- *
- */
- public class Node {
- /**
- * 链表结构的特征:
- * 分二部分:
- * 第一部分为数据
- * 第二部分为地址,它指下一个节点
- */
- public int data;
- public Node next;
- public Node(int data) {
- this.data=data;
- }
- }
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
java 代码
- /**
- * 这是一个栈,栈有如下特点:
- * 先进后出
- * 每新添加(push)一个元素,从头部加入
- * 每取出(pop)一个元素,从头部取出
- */
- package link;
- /**
- * @author sunxboy
- *
- */
- public class Stack {
- private Node head;
- /**
- * 往栈中加入新数据,从头部加入
- * @param data 要加入的数据
- * @return 是否添加成功
- */
- public boolean push(int data) {
- Node node = new Node(data);
- if(head==null) {
- head = node;
- return true;
- }
- // 在头的前面加一个元素
- node.next = head;
- // 更新头
- head = node;
- return true;
- }
- /**
- * 从栈中取出数据,从头部取出
- * @param data 要取出的数据s
- * @return 头部节点的数据
- */
- public int pop() {
- int data = head.data;
- head = head.next;
- return data;
- }
- public static void main(String[] args) {
- Stack stack=new Stack();
- stack.push(1);
- stack.push(2);
- stack.push(3);
- stack.push(4);
- stack.push(5);
- stack.push(6);
- while(stack.head!=null)
- {
- System.out.println(stack.pop());
- }
- }
- }