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
空!不能进行该操作!
空!不能进行该操作!
经验分享 程序员 微信小程序 职场和发展