31栈( STACK) 311栈的定义 栈( stack)--是限制线性表中元素的插入和删除 只能在线性表的同一端进行的一种特殊线性表 允许插入和删除的一端,称为栈顶(Top); 另一端为固定的一端,称为栈底( Bottom)l
3.1 栈(STACK) 3.1.1 栈的定义 栈(stack)---是限制线性表中元素的插入和删除 只能在线性表的同一端进行的一种特殊线性表。 允许插入和删除的一端,称为栈顶(Top); 另一端为固定的一端,称为栈底(Bottom)
3.11栈的定义 根据栈的定义可知,最先放入栈中元素在栈底, 最后放入的元素在栈顶,而删除元素刚好相反, 最后放入的元素最先删除,最先放入的元素最后 删除。 也就是说,栈是一种后进先出( Last In first Out) 的线性表,简称为LIFO表
3.1.1 栈的定义 根据栈的定义可知,最先放入栈中元素在栈底, 最后放入的元素在栈顶,而删除元素刚好相反, 最后放入的元素最先删除,最先放入的元素最后 删除。 也就是说,栈是一种后进先出(Last In First Out) 的线性表,简称为LIFO表
x产31.1栈的定义 ↓举例1:家里吃饭的碗,通常在洗干净后一个 个地落在一起存放,在使用时,若一个一个 入地拿,一定最先拿走最上面的那只碗,而最后 拿出最下面的那只碗。 举例2:在建筑工地上,使用的砖块从底往上 层一层地码放,在使用时,将从最上面一层 层地拿取
3.1.1 栈的定义 举例1:家里吃饭的碗,通常在洗干净后一个 一个地落在一起存放,在使用时,若一个一个 地拿,一定最先拿走最上面的那只碗,而最后 拿出最下面的那只碗。 举例2:在建筑工地上,使用的砖块从底往上 一层一层地码放,在使用时,将从最上面一层 一层地拿取
3.12栈的基本操作 1初始化栈: INITSTACK(S) 将栈S置为一个空栈(不含任何元素)。 2进栈:PUSH(S,x) 将元素X插入到栈S中,也称为“入栈”、“插入”、“压入” 3出栈:POP(S,x) 删除栈S中的栈顶元素,也称为”退栈”、“删除”、“弹出”。 4取栈顶元素: GETTOP(S,x) 取栈S中栈顶元素。 5判栈空: ISEMPTY(S) 判断栈S是否为空,若为空,返回值为TRUE,否则返回值为 FALSE
3.1.2 栈的基本操作 1.初始化栈:INITSTACK(S) 将栈S置为一个空栈(不含任何元素)。 2.进栈:PUSH( S, x ) 将元素X插入到栈S中,也称为“入栈” 、 “插入” 、 “压入”。 3.出栈: POP(S,x ) 删除栈S中的栈顶元素,也称为”退栈” 、 “删除” 、 “弹出”。 4.取栈顶元素:GETTOP(S,x ) 取栈S中栈顶元素。 5.判栈空:ISEMPTY(S) 判断栈S是否为空,若为空,返回值为TRUE,否则返回值为FALSE
312栈的基本操作 6.清空栈: CLEARSTACK(S) 将栈置为空栈; 7、判栈满: ISFULL(S) X判断栈S是否满,若已满,返回值为TRUE,否则返回 值为 FALSE
3.1.2 栈的基本操作 6. 清空栈:CLEARSTACK(S) 将栈置为空栈; 7、判栈满:ISFULL(S) 判断栈S是否满,若已满,返回值为TRUE,否则返回 值为FALSE