数据结构:栈
2016-04-06 20:36
162 查看
#ifndef _MYUNTIL_ #define _MYUNTIL_ template<class T> void ChangeSize1D(T* &a, const int oldSize, const int mewSize); template<class T> void ChangeSize1D(T* &a, const int oldSize, const int mewSize) { if(newSize < 0) throw "New length must be >= 0"; T* temp = new T[newSize]; // 用new操作符动态的创建一个新的数组,将原来的数据一个一个拷贝到新的数组里边, int number = min(oldSize,newSize); std::copy(a,a+number,temp); delete[] a; a=temp; } #endif _MYUNTIL_
#ifndef _MYSTACK_ #define _MYSTACK_ template<class T> class MyStack { public: MyStack(int stackCapacity=10); ~MyStack(); bool IsEmpty() const; T& Top() const; // 返回堆栈顶的元素并不删除, void Push(const T& item); // 放一个元素到堆栈中, void Pop(); // pop是把堆栈中栈顶的数据删除, private: T *stack; // 这是一个指针, int top; // top记录栈顶在哪里, int capacity; // 容量数组有多大, }; template<class T> void MyStack<T>::Pop() { if(IsEmpty()) throw "Stack is empty. Connot delete,"; stack[top--].~T(); // 这个是重点, } template<class T> inline bool MyStack<T>::IsEmpty() const // inline这是一种类元的表示, { return top == -1; } template<class T> inline T& MyStack<T>::Top() const { if(IsEmpty()) throw "Stack is empty"; return stack[top]; } template<class T> MyStack<T>::MyStack(int stackCapacity):capacity(stackCapacity) { if(capacity < 1) throw "stack capacity must be > 0"; stack = new T[capacity]; top = -1; } template<class T> MyStack<T>::~MyStack() { delete [] stack; } template<class T> void MyStack<T>::Push(const T& item) { stack[++top] = item; } #endif _MYSTACK_
#include <iostream> #include "MyUtil.h" #include "MyStack.h" #include <string> using namespace std; class Dog { }; int main() { MyStack<Dog> dogstack; MyStack<string> stringstack; MyStack<int> st; st.Push(6); st.Push(3); st.Push(12); st.Push(31); cout << st.Top() << endl; st.Pop(); cout << st.Top() << endl; cout<< "xiao cui" << endl; return 0; }
相关文章推荐
- 数据结构(左偏树,可并堆):BNUOJ 3943 Safe Travel
- c语言数据结构(3)
- 数据结构学习(一)
- mmap函数和mprotect函数
- Python 数据结构与算法 —— Prim 算法与小顶堆
- Python 数据结构与算法 —— Kruskal 算法
- 数据结构与算法之leetcode刷题笔记
- 关于排序的总结和部分实现(个人理解整理版)
- 数据结构中的栈
- 《数据结构》交换双向循环链表的结点p和它的前驱结点
- Tricks(二十四)—— python 复合(嵌套)数据结构
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制
- 数据结构系统调用机制