C++_简单的链表栈
2015-09-12 19:15
441 查看
类中包含一个指针指向栈顶的元素,定义一个结构体,包括值和一个指向他上一个元素的指针。
#include <iostream> #define NULL 0 using namespace std; class MyStack { private: struct node { int s; node *link; }; node *top; public: MyStack() { top=NULL; } ~MyStack() { node *temp; while(top) { temp=top; top=temp->link; delete temp; } } bool Add(int a); bool Delete(int &a); inline bool StackEmpty() { if(top) return false; else return true; } }; bool MyStack::Add(int a) { node *temp = new node; if(temp) { temp->link=top; temp->s=a; top=temp; return true; } else { cout << "failed" << endl; return false; } } bool MyStack::Delete(int &a) { if(!StackEmpty()) { node *temp; temp=top; a=temp->s; top=temp->link; delete temp; return true; } else { cout << "the stack is empty" << endl; return false; } } int main() { int a; MyStack s; s.Add(3); s.Add(2); s.Add(1); for(int i=0;i<3;i++) { s.Delete(a); cout << a << endl; } return 0; }
相关文章推荐
- C++中this指针用法详解
- [C++] memcopy 和 memmove的区别和实现
- [C++] struct 内存对齐问题
- c语言 链表 写通讯录
- c++遇到个简单而费时的小语法问题
- 关于VC++编译
- 深入解读C++中的指针变量
- K均值聚类(C++)
- 解析C++中的字符串处理函数和指针
- c++11——tuple元组
- Effective C++ —— 资源管理(三)
- c语言实现 去除字符串两端空格及回车 v1.0
- C++ Primer Plus 第九章(单独编译)
- C/C++下的JSON解析/生成库cJSON
- C/C++几种strcpy函数的实现与详解
- C++指针和引用简介
- c++11——lambda表达式
- C++字符数组的输入输出和字符串结束标志使用讲解
- C语言:二叉树的相关操作
- C++ explicit的用法