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)模式
