数据结构c++实现----链式栈
来源:互联网 发布:ubuntu iso 编辑:程序博客网 时间:2024/05/17 01:03
不废话,上代码
//head.h
#ifndef HEAD#define HEAD#include<iostream>using namespace std;template<typename T> class LinkStack;template <typename T>class LinkNode{public:friend class LinkStack<T>;LinkNode();LinkNode( const T &elem);//~LinkNode();用不到 private:T data;LinkNode<T> *pPre;LinkNode<T> *pNext;};template <typename T>LinkNode<T>::LinkNode():pPre(NULL),pNext(NULL){//用于初始化头结点,data用不到。}template <typename T>LinkNode<T>::LinkNode( const T &elem):data(elem),pPre(NULL),pNext(NULL){//初始化其余元素} #endif
//lstack.cpp
#include "head.h"template<typename T> class LinkStack{public:LinkStack();~LinkStack();bool IsEmpty();void Push(const T &data);T Pop();T GetTop();int GetSize();void Clear();private:LinkNode<T> *Top;LinkNode<T> *Base;int Size;};template<typename T> LinkStack<T>::LinkStack():Size( 0 ){Top = new LinkNode<T>;Base = Top;}template<typename T> LinkStack<T>::~LinkStack(){if( ! IsEmpty() ){Clear();}delete Base;}template<typename T> bool LinkStack<T>::IsEmpty(){if( Size == 0 ){return true;}else{return false;}}template<typename T> int LinkStack<T>::GetSize(){return Size;}template<typename T> T LinkStack<T>::GetTop(){return Top->data;}template<typename T> void LinkStack<T>::Push( const T &data){LinkNode<T> *p;p = new LinkNode<T>;p->pPre = Top;p->data = data;Top = p;++Size;}template<typename T> T LinkStack<T>::Pop(){LinkNode<T> *q;q = Top;T data;Top = q->pPre;data = q->data;delete q;--Size;return data;}template<typename T> void LinkStack<T>::Clear(){LinkNode<T> *p;while( Top != Base ){p = Top;Top = p->pPre;delete p;--Size;}}
//main.cpp 测试
#include "head.h"#include "lstack.cpp"int main(){LinkStack<int> ls;cout<< ls.GetSize()<<endl;ls.Push( 66);ls.Push( 55);ls.Push( 44);ls.Push( 33);ls.Push( 22);cout<< ls.GetSize()<<endl;cout<< ls.Pop()<<endl;ls.Clear();cout<< ls.GetSize()<<endl;}
- 数据结构 链式 栈 c实现
- 数据结构-链式栈-C语言实现
- 数据结构 -- 用C实现链式栈
- (C语言)栈的链式实现(数据结构九)
- 数据结构:栈的链式实现(C语言描述)
- 数据结构与算法设计---链式栈的实现(C++)
- 数据结构中链式栈的c语言实现
- 数据结构---C语言栈的链式表示与实现
- 数据结构--链式栈(C语言)
- 链式栈 C语言数据结构
- 数据结构c++实现----链式栈
- 数据结构-链式栈的实现
- 数据结构栈(链式实现)
- 数据结构---栈的链式实现
- 数据结构-->栈的链式实现
- C实现链式栈
- C链式栈实现
- 数据结构的C实现_链式队列
- android service 总结
- CAS客户端配置及定制
- 关于C语言程序
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 数据结构c++实现----链式栈
- MyEclipse高效开发之必备快捷键技能
- python利用管道popen调用.exe进行交互
- C++STL程序:全排列,删除、插入元素。
- POJ 2031 BUilding a Space Station 两点间距离 + 最小生成树
- 百度谷歌等各大网站收录网页提交入口
- 应聘时最漂亮的回答!
- 约瑟夫环(丢手帕游戏)Java 链表实现(程序正确无误)
- [设计模式笔记]三. 行为型模式--15.Chain Of Responsibility(职责链模式)(一)