定义:栈是限定仅在表头进行插入和删除操作的线性表。
栈定义用的是数组 那为什么只能在头插入和删除
实际上到底什么啊
只能在栈顶操作只是栈的定义要求是这样的,这样就实现了“先进后出”的效果。你应该发现普通链表、栈、队列这三种结构本质是相同的,只是人为规定只能在一端或者两端操作。
你如果直接对栈底进行操作,当然是可以的,只是这种数据结构已经不能称之为“栈”了。
如果从编程角度来说的话,假设栈是一个类,那么这个类只提供了push和pop对栈顶操作的方法。并不是不能对栈底操作,而是没有必要。你完全可以在自己写的栈类中提供对栈底的操作方法。
栈就是一种数据使用的方法,并不一定要用数组实现,其他数据结构(比如链表,可变数组)也可以实现,只不过相对运算速度慢。建议lz看看数据结构方面的书籍。
它有自己的头文件 引用就好了 和队列差不多 那就是这样定义的 用来处理相应的问题会很方便 队列的话 优先队列比较好用 标准库里有的话 就不要自己用数组模拟了 代码冗长 且繁琐 像STL什么的 直接调用函数就好了 自己写代码效率太低