第三章 栈精要.pptVIP

  • 0
  • 0
  • 约 17页
  • 2017-05-09 发布于湖北
  • 举报
第三章 栈精要

第三章 栈 栈是一种特殊的线性表,是操作受限的线性表, 称其为限定性数据结构。 3.1 ADT栈(stack) 栈的定义和特点 定义:限定仅在表首进行插入或删除操作的线性表,表首—栈顶,表尾—栈底,不含元素的空表称空栈 特点:先进后出(FILO)或后进先出(LIFO) 3.1 ADT栈(Stack) ADT栈上定义的常用的基本运算 Empty( ): 判断栈空 Full( ):判断栈满 Top( ): 返回栈顶元素 Push(x):将元素x入栈 Pop(x):出栈,并将栈顶元素存入x中 3.1.1栈应用的简单例子 例1、程序编译时的表达式或字符串的括号匹配问题。 例如,算术表达式(x*(x+y)-z),其中位置1和4处有左括 号,而位置8和11处有右括号,满足配对要求。 但算术表达式 (x+y)*z)( ,其中位置8处的右括号没有 可与之配对的左括号,而位置9处的左括号没有可与之配对的右括号。 这里要在栈的基本运算的基础上定义算术表达式(字符串) expr中的圆括号配对检查运算 void Parenthesis(char *expr) 3.2 栈的存储结构 3.2.1 用数组实现栈——顺序栈 3.2.1.1实现:一维数组s[M] 3.2.2两个栈共用一个数组的实现 2个栈共享一个数组stack[0..n] 利用栈底位置不

文档评论(0)

1亿VIP精品文档

相关文档