关于基本操作的几点说明: 1、基本操作是定义于逻辑结构上的基本操作,向外界 提供一个与其通讯的接口。还没有用具体的某种程序 语言写出具体的算法,而算法的实现只有在存储结构 确立之后。对应于不同的存储结构,栈的基本操作的 实现也不相同。 2、基本操作的种类可随实际需要的不同而不同。但是, 栈是操作受限的线性表,不能任意的定义基本操作。 如在栈的第个位置插入数据元素。 3、针对不同的需要,基本操作的参数和返回值可以有 所变化
关于基本操作的几点说明: 1、基本操作是定义于逻辑结构上的基本操作,向外界 提供一个与其通讯的接口。还没有用具体的某种程序 语言写出具体的算法,而算法的实现只有在存储结构 确立之后。对应于不同的存储结构,栈的基本操作的 实现也不相同。 2、基本操作的种类可随实际需要的不同而不同。但是, 栈是操作受限的线性表,不能任意的定义基本操作。 如在栈的第i个位置插入数据元素。 3、针对不同的需要,基本操作的参数和返回值可以有 所变化
1)、求栈的长度:Count(0 初始条件:栈存在; 操作结果:返回栈中数据元素的个数。 2)、判断栈是否为空:IsEmpty0 初始条件:栈存在; 操作结果:如果栈为空返回true,否则返回 false。 3)、清空操作:Clear(0 初始条件:栈存在; 操作结果:使栈为空
1)、求栈的长度:Count () 初始条件:栈存在; 操作结果:返回栈中数据元素的个数。 2)、判断栈是否为空:IsEmpty() 初始条件:栈存在; 操作结果:如果栈为空返回true,否则返回 false。 3)、清空操作:Clear() 初始条件:栈存在; 操作结果:使栈为空
4)、入栈操作:Push(T item) 初始条件:栈存在; 操作结果:将值为item的新的数据元素添加到栈 顶,栈发生变化。 5)、出栈操作:Pop0 初始条件:栈存在且不为空; 操作结果:将栈顶元素从栈中取出,栈发生变化。 6)、取栈顶元素:GetTop() 初始条件:栈表存在且不为空; 操作结果:返回栈顶元素的值,栈不发生变化
4)、入栈操作:Push(T item) 初始条件:栈存在; 操作结果:将值为item的新的数据元素添加到栈 顶,栈发生变化。 5)、出栈操作:Pop() 初始条件:栈存在且不为空; 操作结果:将栈顶元素从栈中取出,栈发生变化。 6)、取栈顶元素:GetTop() 初始条件:栈表存在且不为空; 操作结果:返回栈顶元素的值,栈不发生变化
3.1.2栈的顺序存储 一.栈的顺序存储:利用一组地址连续的存储单元 依次存放自栈底至栈顶的元素。 假设每个元素占用个存储单元,栈中第一个元素(即栈底元素)的 存储地址是LOC(a1)=b,那麽栈中最后一个元素(即栈顶元素)的存储 地址是多少? b+(n-1)川 an b+(n-2)川 an1 b+l a2 a1 b
3.1.2 栈的顺序存储 一.栈的顺序存储:利用一组地址连续的存储单元 依次存放自栈底至栈顶的元素。 假设每个元素占用l个存储单元,栈中第一个元素(即栈底元素)的 存储地址是LOC(a1)=b,那麽栈中最后一个元素(即栈顶元素)的存储 地址是多少? a1 a2 a n-1 a n . b b+(n-2)l b+l b+(n-1)l
因为在c#语言的层面上讨论问题,栈的顺序存储是把栈 的数据元素自栈底至栈顶放在一维数组中。同时附设一个 top指示器指向栈顶元素。 top an an1 a2 a
因为在c#语言的层面上讨论问题,栈的顺序存储是把栈 的数据元素自栈底至栈顶放在一维数组中。同时附设一个 top指示器指向栈顶元素。 a1 a2 a n-1 a n . top