从零学建设网站018马经,免费网站模板带后台下载,火车头wordpress发布,做网站 小程序前景栈 栈(堆栈)的定义
堆栈又名栈(stack),它是一种线性表。限定仅在表尾进行插入和删除操作的线性表。是一种后进先出的线性表.
空栈:不含任何元素的空表。
栈顶和栈底
进行插入和删除的这一端(表尾)被称为栈顶#xff0c;相对地#xff0c;把另一端称为栈底。
入栈和出栈 …栈 栈(堆栈)的定义
堆栈又名栈(stack),它是一种线性表。限定仅在表尾进行插入和删除操作的线性表。是一种后进先出的线性表.
空栈:不含任何元素的空表。
栈顶和栈底
进行插入和删除的这一端(表尾)被称为栈顶相对地把另一端称为栈底。
入栈和出栈
进栈(入栈或压栈):向一个栈插入新元素它是把新元素放到栈顶元素的上面使之成为新的栈顶元素.
出栈(退栈)从一个栈删除元素又称作它是把栈顶元素删除掉使其相邻的元素成为新的栈顶元素。 特点:
1.栈作为一种数据结构是一种只能在一端进行插入和删除操作的特殊的线性表。
2.按照后进先出的原则存储数据先进入的数据被压入栈底最后的数据在栈顶需要读数据的时候从栈顶开始读出数据(最后一个数据被第一个读出来) 顺序栈
采用顺序存储的栈叫做顺序栈利用一组地址连续的存储单元存放从栈底到栈顶的数据元素设置一个top指针指示当前栈顶元素的位置
栈顶位置必须小于栈的长度StackSize。由于栈的第一个元素的位置为0因此把top-1作为判断栈为空栈的条件。 共享栈
利用栈底的位置相对不变的特征让俩个顺序栈共享一个一维数组空间让栈从俩端往中间延伸 队列 队列的定义
队列是一种线性表它只允许在表的前端进行删除操作而在表的后端进行插入操作和栈一样队列是一种操作受限制的线性表.进行插入操作的端称为队尾进行删除操作的端称为队头.
队列的数据元素又称为队列元素
入队和出队
在队列中插入一个队列元素称为入队从队列中删除一个队列元素称为出队。
因为队列只允许在一端插入在另一端删除所以只有最早进入队列的元素才能最先从队列中删除故队列为先进先出
顺序队列和循环队列
顺序队列
建立顺序队列结构必须为其静态分配或动态申请一片连续的存储空间并设置两个指针进行管理。一个是队头指针front它指向队头元素另一个是队尾指针rear它指向下一个入队元素的存储位置
循环队列
在进行出队和入队操作时front和rear的指针在进行不断的移动
造成存储空间不能完全利用的问题
在实际使用队列时为了使队列空间能重复使用往往对队列的使用方法稍加改进无论插入或删除一旦rear指针增1或front指针增1 时超出了所分配的队列空间就让它指向这片连续空间的起始位置。这实际上是把队列空间由原本的形状重新想象成一个环形空间环形空间中的存储单元循环使用用这种方法管理的队列也就称为循环队列。除了一些简单应用之外真正实用的队列是循环队列。 在循环队列中当队列为空时有frontrear而当所有队列空间全占满时也有frontrear。为了区别这两种情况规定循环队列最多只能有MaxSize-1个队列元素当循环队列中只剩下一个空存储单元时队列就已经满了。因此队列判空的条件时frontrear.