C语言顺序栈的实现
一、栈的定义
只允许对序列的末端(栈顶)进行操作,最后一个元素称为栈顶,第一个元素称为栈底(基址)。
二、顺序栈的结构体描述
代码示例如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/577ba91d49b5c3d295aa1f83ac8a2350.png)
top为栈顶的下标,size为栈大小,increment是栈扩容的大小
其他定义为
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/912daf509f1628e75e440f8f6592c8e6.png)
三、初始化
代码示例如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8dca889af60efb71d07501c41a1b58c8.png)
四、清空栈(物理空间还在)
代码实例如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/58afb078d9c7f0ebdd34571b86c5cea0.png)
五、销毁栈 (释放物理空间)
代码示例如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8e040a24c1844d5063a82d7130f402cf.png)
六、入栈
代码示例如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6e6042c4b3917385e40b1a0bebf223a7.png)
如果栈满了,则需要进行扩容,然后进行压栈,并且top要自增。
七、出栈
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8b15933f54e24532aa9bb18969a5188c.png)
如果是空栈,则无法出栈,不操作。否则取栈顶元素赋值给e,并且top自减。