Java数据结构之用双向链表实现栈的入栈和出栈操作
package LinkList; // 使用双链表 定义栈的基本操作 public class StackByDoubleLink extends DoubleLinkList { // 栈继承自双链表 // DoubleNode head = null; // 双链表压栈操作 --- 向双链表插入一个元素 public void push(int a){ HeadInsertLinkList(a); // 返回压栈后的链表 } // 双链表出栈操作 --- 从双链表表头取一个元素 public int pop(){ int a = HeadDeleteLinkList(); if(a != -1){ System.out.println("出栈:" + a); } return a; } public void printStack(){ System.out.println("打印栈中元素"); System.out.println(" 栈顶"); HeadPrintDoubleLinkList(); System.out.println(" 栈底"); } public static void main(String[] args) { StackByDoubleLink stack = new StackByDoubleLink(); stack.push(3); stack.push(4); stack.push(5); stack.push(6); stack.push(7); stack.printStack(); System.out.println(); stack.pop(); stack.pop(); stack.pop(); stack.pop(); stack.pop(); stack.pop(); stack.pop(); } }
打印栈中元素 栈顶 | 7 | | 6 | | 5 | | 4 | | 3 | 栈底 出栈:7 出栈:6 出栈:5 出栈:4 出栈:3 空!不能进行该操作! 空!不能进行该操作!
下一篇:
观察者(Observer)模式