关于C++中栈的问题,总是不懂

来源:百度知道 编辑:UC知道 时间:2024/06/27 13:42:43
本人正在学数据结构的栈,好多都不懂。如:sqstack s是定义一个栈,就像int i一样,那么以后用到s时系统就把它当栈处理吗?那么为什么sqstack不是绿色字体呢?(我用的VC++6.0)。“先进后出”功能是系统给的还是自己定义的

所谓栈 等数据结构都不是系统自带的数据类型 是抽象数据类型(ADT) 它们再逻辑上可以形象地理解 比如栈就是后进先出 类似箩筐 但实现它还是要物理上得以实现 这就要你自己写该结构的属性(数据) 和方法(操作)了

所谓定义一个栈就是定义了一个类

tpyedef class stack
{
....

}

其中包括数组s[]存放数据 然后一个 int l 表示栈顶 再定义各个操作等等 逻辑上讲是一个数据结构 实际上就是一个class 楼主理解了吧? 你自己写的类当然不能算系统的保留字 自然就没有反色等显示了

定义一个栈后,还要定义它的输入输出函数,系统不会把它当栈处理,而是自己定义函数,如定义push函数为进栈,pop函数为出栈。
学习栈的时候,可以看书上的程序示例,不一定要用指针,用数组也可以实现
一般书本上会有栈的输入输出函数示例

栈和堆都是抽象数据类型,也就是一种数据结构,在程序语言中是不存在这种基本类型的。抽象数据型的功能也是自己定义的.你要在程序中使用一个栈,也就是说要自己定义一个结构/类,能够完全的符合栈/堆的定义

栈只是一个抽象的数据结构类型,还要自己定义的,只是这个数据类型用的很广泛,所以几乎说到“栈”,都会想到stack,一些基本的pop,push等功能也就是约定俗成的了
至于边颜色是只有c++内部的关键字才会变,栈是自己定义的,所以不会变色
数据结构很有用,好好学习吧