标签:栈
各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例。闲话休提,
言归正转。让我们一起talk C栗子吧!
看官们,上一回中咱们说的是双向链表的例子,这一回咱们说的例子是:栈。
什么是栈?我们听过龙门客栈,你这个是哪家客栈?我还没有说,台下已经有客官在问了。看官们,栈是
类似我们在前面几回中说过的链表,它也是用来存放数据的一种抽象的数据结构。因为比较抽象,咱们还
是举个现实生活中的例子来说明吧。
我们出去旅游时通常会拿一个行李箱存放自己的物品,比如衣服,鞋子电脑,相机等。出发前,我们会把
这些东西依次放到行李箱中,首先会把不容易压坏的物品放到箱底,比如衣服。然后把容易压坏的物品放
到上面,比如电脑和相机。当我们到达目的地时,会取出行李箱中的物品。首先拿出放在箱子上面的电脑
和相机,最后拿出放在箱子底部的衣服。大家看看,拿出物品的顺序和存放物品的顺序正好相反。最后放
进去的电脑和相机等易压碎的物品最先拿出来,最先放进去的衣服等不易压碎的物品最后拿出来。这个行
李箱就好比一个存放数据的栈,箱子里面的物品好比数据,从箱子里拿物品好比操作数据,拿物品要先拿
最后存放的物品,操作数据也要先操作最后放到栈中的数据。就是说最先存放到栈中的数据最后被拿出。
这便是栈的特点:先进后出。
看官们,和链表一样,栈也有两种实现方式:顺序存放和链式存放。我们会分别举例子说明。栈有两个基
本的操作:出栈和入栈。入栈就是把数据存放到栈中,出栈就是把数据从栈中拿出来。入栈和出栈这两个
操作要符合栈“先进后出”的特点。
看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击链接下载使用。关于代码中
有一些需要注意的地方和大家说一下:
- 栈的顺序存储是通过一个全局数组实现的,栈的大小就也就是数组的长度,可以自己定义。
- 入栈时要确认栈是否已经満了,不然会有溢出。我在代码中多放了一个空间可以避免溢出。
- 出栈时要确认栈是否已经空了,不然会有溢出。我在代码中通过多放了一个变量size可以避免溢出。
各位看官,关于栈的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。
标签:栈
原文地址:http://blog.csdn.net/talk_8/article/details/46491659