2 qq 33070397 qq_33070397 于 2016.03.17 12:05 提问

数据结构 栈的定义 栈的定义
c++

定义:栈是限定仅在表头进行插入和删除操作的线性表。
栈定义用的是数组 那为什么只能在头插入和删除
实际上到底什么啊

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.17 12:40
已采纳

只能在栈顶操作只是栈的定义要求是这样的,这样就实现了“先进后出”的效果。你应该发现普通链表、栈、队列这三种结构本质是相同的,只是人为规定只能在一端或者两端操作。
你如果直接对栈底进行操作,当然是可以的,只是这种数据结构已经不能称之为“栈”了。
如果从编程角度来说的话,假设栈是一个类,那么这个类只提供了push和pop对栈顶操作的方法。并不是不能对栈底操作,而是没有必要。你完全可以在自己写的栈类中提供对栈底的操作方法。

Rico__
Rico__   2016.03.17 12:41

栈就是一种数据使用的方法,并不一定要用数组实现,其他数据结构(比如链表,可变数组)也可以实现,只不过相对运算速度慢。建议lz看看数据结构方面的书籍。

qq_33184171
qq_33184171   2016.03.17 14:08

它有自己的头文件 引用就好了 和队列差不多 那就是这样定义的 用来处理相应的问题会很方便 队列的话 优先队列比较好用 标准库里有的话 就不要自己用数组模拟了 代码冗长 且繁琐 像STL什么的 直接调用函数就好了 自己写代码效率太低

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!