链式栈的类定义
来源:互联网 发布:淘宝a店是什么店 编辑:程序博客网 时间:2024/06/05 21:09
#pragma once#include "stdafx.h"#include "StackNode.h"//LinkStack,链式栈的类定义template <typename T>class Stack {private: StackNode<T>* top; //cur ptr // 7个方法public: //Construct Function() Stack() :top(NULL) {} //DeConstruct Function() ~Stack() { StackNode<T>* p; //temp ref domain while (top != NULL) { //free() p = top; top = top->next; delete p; } } //Push() 从栈顶压入一个元素 void Push(const T & item) { StackNode<T> * p = new StackNode<T>; p->data = item; //赋值 p->next = top; //connect cur ptr top = p; //cur ptr move ++ } //Pop() 从栈顶弹出一个元素 T Pop() { if (IsEmpty()) { //empty stack cerr << "Attempt to pop an empty stack!" << endl; exit(1); } StackNode<T>* p = top; //temp ref domain T RetValue = p->data; //temp data domain top = top->next; //top-- move delete p; //free() p, else will crash memory return RetValue; } //Peek(),GetTop() T Peek() const { if (IsEmpty()) { //empty stack cerr << "Attempt to pop an empty stack!" << endl; exit(1); } return top->data; }//!_Peek //Clear() void Clear(void) { //不free()会内存泄漏 StackNode<T>* p; //temp ref domain while (top != NULL) { //free() p = top; top = top->next; delete p; } this.top = NULL; }//!_Clear() //IsEmpty() int IsEmpty(void) const { return top == NULL; }//!_IsEmpty()};//!_class Stack
0 0
- 链式栈的类定义
- 链式栈类定义
- 链式队列类定义
- 链式队列的定义与操作
- 对列表的链式实现-初始定义
- 【链式栈】链式栈的封装<源代码>
- 队列的基本操作——链式队列的类模板定义
- (2011.10.30)3_a2.cpp —— 链式栈的定义
- 栈的链式存储
- 栈的链式实现
- 链式栈的实现
- 栈的链式建立
- 栈的链式实现
- 栈的链式存储
- 链式栈的实现
- 栈的链式存储
- 栈的链式操作-------
- 栈的链式存储
- 操作系统小练习3
- LeetCode
- ubuntu 16.04上对Python版本之间的切换(2.7\3.X)
- 双系统 ubuntu 16.04 和 win 10 时间同步问题
- 测试
- 链式栈的类定义
- 3多线程断点下载一个文件(android工程:java实现)
- Qt中路径问题小结
- 最小费用最大流模板
- 我上辈子欠你的
- JS学习随笔
- 注解(Annotation)注解处理器
- 我怎么这么幸运
- Spring容器初始化过程都做了哪些事儿