码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构笔记——栈

时间:2018-01-16 00:53:52      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:释放   工作   调用   数据   body   空间   笔记   否则   特点   

栈的应用及构造

栈的简介

栈是一种只能从一端进行删除和插入的线性结构。因此栈具有后进先出的特点。例如进栈顺序是12345,如果5是第一个出栈的数字,则接下来出栈的一定是4,3,2,1。由于栈后进先出的特点,所以栈经常被递归算法调用,此时栈被称为递归工作栈。从栈的容量来看,栈可被分为动态栈可静态栈。动态栈顾名思义即使栈的容量可变,静态栈即是栈的容量是固定的。

用顺序表构造的静态栈及其操作

1.栈的构造:申请给定大小空间,将栈顶指针指向栈底。
2.栈的初始化:将栈的栈顶指针指向栈底。
3.栈的插入:先检查是否栈满,若栈满,则报错。否则将栈顶指针上移一个单位,将元素插入栈顶。
4。栈的删除:先检查是否栈空。若栈空,则报错。否则,删去栈顶元素,将栈顶下移一个单位。

用顺序表构造的动态栈及其操作

1.栈的构造:申请一定大小的空间。将栈栈顶指针指向栈底(-1)。
2.栈的初始化:将栈顶指针指向栈底(-1)
3.栈的插入:先检查是否栈满,若栈满,则申请一个是此时栈两倍大小新栈。将旧栈内容复制到新栈。并将旧栈空间释放。然后将栈顶指针上移一个单位。然后将新数据插入到栈顶指针所指位置。。
4.栈的删除:先检查是否、栈空,若栈空,则报错。否则删除栈顶元素,并将栈顶元素下移一个单位。

用链表构造的动态栈及其操作

1.栈的构造:申请栈节点指针并赋值null(此栈节点指针即是栈顶指针)
2.栈的初始化:将原有栈节点空间一个一个释放,并将栈顶指针指向空节点。
3.栈的插入:申请一个新的栈节点,将插入数据放在此新申请节点的数据域。并将此新栈节点链入栈顶。将栈顶指针指向此新栈节点。
4.栈的删除:先检查是否栈空。若栈空,则报错。否则将栈顶节点删除,并将栈顶指针指向下一个栈节点。

数据结构笔记——栈

标签:释放   工作   调用   数据   body   空间   笔记   否则   特点   

原文地址:https://www.cnblogs.com/sunhere/p/8290008.html

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