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
空!不能进行该操作!
空!不能进行该操作!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值