computer 版 (精华区)
发信人: remember (学海无涯·回头是岸), 信区: program
标 题: 关于栈的实现
发信站: 听涛站 (2001年12月09日02:31:45 星期天), 站内信件
好久没有来这灌水了~~~~
这周的作业是这样的:
建立一个栈。从文件中读入字符。如果字符是左括号,压入栈内;
如果是右括号:(1)如果栈空,报错;(2)弹出栈顶元素;如果弹出的字
符和该右括号不匹配,报错。如果在读完文件的时候,栈非空,报错。
栈,简单的说来就是一种后进先出(LIFO)的数据结构,在计算机
程序编制中有及其重要的作用,通常用于函数调用时保存当前状态或处
理表达式之类。可以想象栈就是一个桶,放入东西,后放的自然要先取
出,你永远只能看到栈顶元素。
栈通常包括以下操作(简单版):
压栈;退栈;查看栈顶元素;清空栈
编程处理上可以用数组或链表方式实现。具体的代码我就不详细列
出了。按你的需要可以考虑使用数组或链表。
C++标准库中提供了模版类stack,位于头文件stack,命名空间std
中,调用方式如下:
#include <stack>
using namespace std;
stack<char> mystack;
模版类的使用可能不少教材上没有提到。但C++中的模版类实在时
非常重要的东东,可以说,没有模版类,C++远没有现在这么风光。具
体的我这里也不写了。
使用C++标准库提供的类可以保证数据结构的运作效率,也大大减
轻重复劳动。应尽可能的多使用。
当然,我不反对在作业联系中自己编写栈的实现,因为唯有深入,
方得浅出。何况这绝对是一次很好的锻炼机会。
--
洛阳亲友如相问 一片冰心在玉壶
※ 来源:·听涛站 tingtao.dhs.org·[FROM: 匿名天使的家]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:0.958毫秒