码迷,mamicode.com
首页 > 编程语言 > 详细

一起talk C栗子吧(第十六回:C语言实例--栈一)

时间:2015-06-14 16:46:35      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:


各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例。闲话休提,

言归正转。让我们一起talk C栗子吧!


看官们,上一回中咱们说的是双向链表的例子,这一回咱们说的例子是:栈。


什么是栈?我们听过龙门客栈,你这个是哪家客栈?我还没有说,台下已经有客官在问了。看官们,栈是

类似我们在前面几回中说过的链表,它也是用来存放数据的一种抽象的数据结构。因为比较抽象,咱们还

是举个现实生活中的例子来说明吧。

我们出去旅游时通常会拿一个行李箱存放自己的物品,比如衣服,鞋子电脑,相机等。出发前,我们会把

这些东西依次放到行李箱中,首先会把不容易压坏的物品放到箱底,比如衣服。然后把容易压坏的物品放

到上面,比如电脑和相机。当我们到达目的地时,会取出行李箱中的物品。首先拿出放在箱子上面的电脑

和相机,最后拿出放在箱子底部的衣服。大家看看,拿出物品的顺序和存放物品的顺序正好相反。最后放

进去的电脑和相机等易压碎的物品最先拿出来,最先放进去的衣服等不易压碎的物品最后拿出来。这个行

李箱就好比一个存放数据的栈,箱子里面的物品好比数据,从箱子里拿物品好比操作数据,拿物品要先拿

最后存放的物品,操作数据也要先操作最后放到栈中的数据。就是说最先存放到栈中的数据最后被拿出。

这便是栈的特点:先进后出。


看官们,和链表一样,栈也有两种实现方式:顺序存放和链式存放。我们会分别举例子说明。栈有两个基

本的操作:出栈和入栈。入栈就是把数据存放到栈中,出栈就是把数据从栈中拿出来。入栈和出栈这两个

操作要符合栈“先进后出”的特点。


看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击链接下载使用。关于代码中

有一些需要注意的地方和大家说一下:

  • 栈的顺序存储是通过一个全局数组实现的,栈的大小就也就是数组的长度,可以自己定义。
  • 入栈时要确认栈是否已经満了,不然会有溢出。我在代码中多放了一个空间可以避免溢出。
  • 出栈时要确认栈是否已经空了,不然会有溢出。我在代码中通过多放了一个变量size可以避免溢出。


各位看官,关于栈的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。


一起talk C栗子吧(第十六回:C语言实例--栈一)

标签:

原文地址:http://blog.csdn.net/talk_8/article/details/46491659

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!