加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

栈是这么定义你知道吗?

发布时间:2021-06-03 19:15:38 所属栏目:编程 来源:互联网
导读:栈(stack)又名仓库,它是一种运算受限的线性表。限制仅在表尾举办插入和删除操纵的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又

栈(stack)又名仓库,它是一种运算受限的线性表。限制仅在表尾举办插入和删除操纵的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除去,使其相邻的元素成为新的栈顶元素。

轻微先容一下要害名词:

运算受限:也就是这个表你不能任意的删除插入。只能凭证它的法则举办插入删除。好比栈就只能在一端举办插入和删除。同样,行列也是运算受限,只能在两端操纵。

线性表:栈也是一种线性表,前面具体先容过线性表,它表达的是一种数据的逻辑相关。也就是在栈内各个元素是相邻的。虽然在详细实现上也分数组和链表实现,他们的物理存储布局差异。可是逻辑布局(实现的目标)沟通。

栈顶栈底: 这个描写是方向于逻辑上的内容,由于各人知道数组在末端插入删除更轻易,而单链表凡是在头插入删除更轻易。以是数组可以用末端做栈顶,而链表可以头做栈顶。

栈的应用: 栈的应用普及,好比你的措施执行查察挪用仓库、计较机四则加减运算、算法的非递归情势、括号匹配题目等等。以是栈也是必需把握的一门数据布局。最简朴各人都经验过,你拿一本书上下叠在一路,就是一个后进先出的进程,你可以把它当作一个栈。下面我们先容数组实现的栈和链表实现的栈。

数组实现

数组实现的栈用的较量多,我们常常刷题也会用数组去实现一个简朴的栈去办理简朴的题目。

布局计划

对付数组来说,我们模仿栈的进程很简朴,由于栈是后进先出,我们很轻易在数组的末端举办插入和删除。以是我们选定末端为栈顶。以是对付一个栈所必要的基本元素是 一个data[]数组和一个top(int)暗示栈顶位置。

那么初始化函数代码为:

private T data[]; 

private int top; 

public seqStack() { 

    data=(T[]) new Object[10]; 

    top=-1; 

public seqStack(int maxsize) 

    data=(T[]) new Object[maxsize]; 

    top=-1; 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读