苏州大学计算机科学与技术学院面向对象与C++程序设计课件 第七讲.pptVIP

  • 0
  • 0
  • 约1.27千字
  • 约 12页
  • 2019-05-14 发布于广东
  • 举报

苏州大学计算机科学与技术学院面向对象与C++程序设计课件 第七讲.ppt

第七讲 类模板 苏州大学计算机科学与计算机学院 模板函数 可以增强一个函数的通用性,减少函数的编程 Typename Class:更加通用 模板类 用模板技术同样可以消除相似的类 例子: 栈 后进先出表 一个字符堆栈类 一个整型数据的堆栈类 如何实现通用堆栈类? 特殊的线性群体——栈 栈是只能从一端访问的线性群体,可以访问的这一端称栈顶,另一端称栈底。 栈的应用举例——函数调用 栈的应用举例——表达式处理 栈的基本状态 栈空 栈中没有元素 栈满 栈中元素个数达到上限 一般状态 栈中有元素,但未达到栈满状态 栈的基本操作 初始化 入栈 出栈 清空栈 访问栈顶元素 检测栈的状态(满、空) 例 栈类模板 //9-8.h #ifndef STACK_CLASS #define STACK_CLASS #include iostream.h #include stdlib.h const int MaxStackSize = 50; template class T class Stack { private: T stacklist[MaxStackSize]; int top; public: Stack (void); void Push (const T item); T Pop (void); void ClearStack(void); T Peek (void) const; int StackEmpty(void) const; int StackFull(void) const; }; //类的实现略 标准模板库(STL) STL的目的是标准化组件,这样你就不用重新开发它们了。 STL现在是C++的一部分,因此不用额外安装什麽。它被内建在你的编译器之内 vector、list、map、set等 * * an ┆ a2 a1 入栈 出栈 栈顶 栈底 main{} 调fun(参数) 结束 fun(参数) 返回 ① ② ⑤ ⑦ ⑧ 参数 当前现场 返回地址 ③ ⑥ 入栈 当前现场 返回地址 出栈 参数 ④ 出栈 当前现场 返回地址 b a / a/b+c*d (a) t1 + a/b+c*d t1=a/b (b) d c t1 * + a/b+c*d (c) t3 a/b+c*d t3=t1+t2 (e) t2 t1 + a/b+c*d t2=c*d (d) 栈顶 ┆ an ┆ a1 a0 入栈 出栈 数组下标 max n 1 0 一般状态 栈顶 入栈 出栈 数组下标 初始状态(栈空) max n 1 0 栈顶 amax ┆ an ┆ a1 a0 入栈 出栈 数组下标 max n 1 0 栈满状态

文档评论(0)

1亿VIP精品文档

相关文档