en造数据结构与算法C# 用数组实现个栈还不简单???看我一秒破之!!!(unity演示)

实现效果 

 

线性表,线性表是指数据元素按顺序排列的一种数据结构,下面这些东西可以说都是线性表,所以用array实现三者一点问题都没有

分别是List动态数组,stack栈和queue队列,今天就秒掉stack

 

栈:先进后出

实现思路

用数组表示的话,只需要给最后一位打个标记不就行了

当我压栈(添加元素)的时候,把标记后移,再添加元素

弹栈的时候把标记前移,原来的元素我直接不管了,等待下一次压栈的时候就直接给他覆盖了

想明白了就直上代码

无需注意前面的方法,只需看最下面的Arr2stack类即可

public class Arr2Stack : MonoBehaviour {
    Arr2stack arr = new Arr2stack(new int[10]); // 初始化一个大小为10的栈

    void Update() {
        // 检测数字键按下
        for (int i = 0; i <= 9; i++) {
            if (Input.GetKeyDown(i.ToString())) {
                arr.Push(i);
                Debug.Log($"压入了数字: {i}");
            }
        }

        // 检测Backspace键按下
        if (Input.GetKeyDown(KeyCode.Backspace)) {
            int poppedValue = arr.Pop();
            Debug.Log($"弹出了数字: {poppedValue}");
        }
    }
}

public class Arr2stack {

    int[] arr;
    int top = -1;

    public Arr2stack(int[] arr) {
        this.arr = new int[arr.Length];
        for (int i = 0; i < arr.Length; i++) {
            this.arr[i] = arr[i];
        }
    }

    public void Push(int value) {
        if (top < arr.Length - 1) {
            arr[++top] = value;
        }
        else {
            Debug.Log("栈已满,无法压栈");
        }
    }

    public int Pop() {
        if (top == -1) {
            Debug.Log("栈为空,无法出栈");
            return 0;
        }
        Debug.Log($"弹出了{arr[top]}");
        return arr[top--];
    }
}

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值