diff --git a/ex7/ex7.cpp b/ex7/ex7.cpp new file mode 100644 index 0000000..2907e1c --- /dev/null +++ b/ex7/ex7.cpp @@ -0,0 +1,8 @@ +#include +#include "stack.h" + +int main() +{ + printf("g") + +} \ No newline at end of file diff --git a/ex7/stack.cpp b/ex7/stack.cpp new file mode 100644 index 0000000..9b642c5 --- /dev/null +++ b/ex7/stack.cpp @@ -0,0 +1,27 @@ +#include "stack.h" + +// template +// void Stack::push (T const& elem) +// { +// _elems.add(elem); +// } + +// template +// T Stack::pop () +// { +// if (_elems.getused()) { +// return NULL; +// } +// // 删除最后一个元素 +// return _elems.remove_back() +// } + +// template +// T Stack::top () const +// { +// if (_elems.getused()) { +// return NULL; +// } +// // 返回最后一个元素的副本 +// return _elems[_elems.getused()-1]; +// } \ No newline at end of file diff --git a/ex7/stack.h b/ex7/stack.h new file mode 100644 index 0000000..710cb66 --- /dev/null +++ b/ex7/stack.h @@ -0,0 +1,42 @@ +template +class Stack { + private: + T _v[10]; + int _len=10; + int used=0; + public: + void push(T const&); + T pop(); + T top() const; + bool empty() const; + + protected: +// void expand() +// { + +// _len = _len * 2; +// T *p = new T[_len]; + +// for (int i = 0; i <= _used; i++) +// p[i] = _v[i]; + +// delete[] _v; +// _v = p; +// } + +// template +// void Vec::shrink() +// { +// if (((double)_used / (double)_len) >= 0.25) +// return; + +// _len = _len >> 1; +// T *p = new T[_len]; + +// for (int i = 0; i <= _used; i++) +// p[i] = _v[i]; + +// delete[] _v; +// _v = p; +// } +}; \ No newline at end of file