⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linkedstack.h

📁 用于词法分析的词法分析器
💻 H
字号:
/*  $Id: LinkedStack.h,v 1.2 1997/02/02 01:31:04 matt Exp $  Linked list stack.    (c) Apr 17 1994 Matt Phillips.  */#ifndef _LSTACK_H#define _LSTACK_H#include "Stack.h"#include "LinkedList.h"template <class T, class E>class LinkedStackImp : public Stack<T>, protected LinkedListImp<T, E>{public:  typedef LinkedStackImpIter<T, E> Iterator;  const char *name () const {return Stack<T>::name ();}  int nItems () const {return LinkedListImp<T, E>::nItems ();}  int isFull () const {return LinkedListImp<T, E>::isFull ();}  int isEmpty () const {return LinkedListImp<T, E>::isEmpty ();}  void clear () {LinkedListImp<T, E>::clear ();}  virtual void push (T &i)  {STACK_OVERFLOW (!isFull ()); add (i);}  virtual void pop ()  {    STACK_UNDERFLOW (!isEmpty ());    E *next = head->next;    delete head;    head = next;    _nItems--;  }  virtual T &top () const  {    STACK_UNDERFLOW (!isEmpty ());    return head->ref ();  }  Iterator *makeIter () const {return new Iterator (*this);}  friend class Iterator;};template <class T, class E>class LinkedStackImpIter : public LinkedListImpIter<T, E>{public:  LinkedStackImpIter (const LinkedStackImp<T, E> &s) :    LinkedListImpIter<T, E> (s) {}};#define TypeDLinkedStack(T)  LinkedStackImp<T, DLinkedItem<T> >#define TypeILinkedStack(T)  LinkedStackImp<T, ILinkedItem<T, 0> >#define TypeIOLinkedStack(T) LinkedStackImp<T, ILinkedItem<T, 1> >#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -