链式栈的实现
来源:互联网 发布:流量软件哪个好 编辑:程序博客网 时间:2024/05/16 19:50
vs2013下编写的项目工程见 我的 github: https://github.com/excelentone/DataStruct
LinkStack.h
#include "StackNode.h"template<typename T> class LinkStack{public: LinkStack() :_pTop(NULL) {} ~LinkStack() { MakeEmpty(); }public: void MakeEmpty(); void Push(const T item); T Pop(); T GetTop() const; void Print(); bool IsEmpty() const { return _pTop == NULL; }private: StackNode<T> *_pTop;};template<typename T> void LinkStack<T>::MakeEmpty(){ StackNode<T> *pmove; while (_pTop != NULL) { pmove = _pTop; _pTop = _pTop->_pNext; delete pmove; }}template<typename T>void LinkStack<T>::Push(const T item){ _pTop = new StackNode<T>(item, _pTop);}template<typename T> T LinkStack<T>::GetTop() const{ if (IsEmpty()) { cout << "There is no elements!" << endl; exit(1); } return _pTop->_data;}template<typename T>T LinkStack<T>::Pop(){ if (IsEmpty()) { cout << "There is no elements!" << endl; exit(1); } StackNode<T> *pdel = _pTop; _pTop = _pTop->_pNext; T temp = pdel->_data; delete pdel; return temp;}template<typename T>void LinkStack<T>::Print(){ StackNode<T> *pmove = _pTop; cout << "buttom"; while (pmove != NULL) { cout << "--->" << pmove->_data; pmove = pmove->_pNext; } cout << "--->top" << endl << endl << endl;}
StackNode.h
template<typename T> class LinkStack;template<typename T> class StackNode{private: friend class LinkStack < T > ; StackNode(T dt, StackNode<T> *next = NULL) :_data(dt) , _pNext(next) {}private: T _data; StackNode<T> *_pNext;};
test.cpp
#include <iostream>using namespace std;#include "LinkStack.h"void test(){ LinkStack<int> stack; int init[10] = { 1, 3, 5, 7, 4, 2, 8, 0, 6, 9 }; for (int i = 0; i < 10; i++) { stack.Push(init[i]); } stack.Print(); cout << stack.Pop() << endl; stack.Print(); cout << stack.GetTop() << endl; stack.Print(); cout << stack.Pop() << endl; stack.Print(); stack.MakeEmpty(); stack.Print(); //stack.Pop();}int main(){ test(); system("pause"); return 0;}
阅读全文
2 0
- 栈的链式实现
- 链式栈的实现
- 栈的链式实现
- 链式栈的实现
- 链式栈的实现
- 链式栈的实现
- 链式栈的实现
- 链式栈的实现
- 栈的链式实现
- 栈的实现(链式)
- 链式栈的实现
- 链式栈的实现
- 链式栈的实现
- 链式栈的实现
- 栈的链式实现
- 栈的实现:链式栈
- 栈---链式栈的实现
- 栈的链式实现形式
- Java实现-删除排序数组中的重复数字2
- opencv ROI(感兴趣区域)与掩码操作 ROI图像融合
- Java与算法(3)
- Collections.sort排序
- 多进程如何调度
- 链式栈的实现
- canvas动画圆形扩散
- Java+Selenium3基础篇5-第一个自动化测试脚本
- 关于Android中WebView的点滴
- (搬运).net起步 (MemberShip 的配置)
- Java实现-重排链表
- c#中的正则表达式的源码
- 0017_Letter Combinations of a Phone Number
- Hibernate框架自学笔记