链栈之C++实现

来源:互联网 发布:淘宝贷款15万可信么 编辑:程序博客网 时间:2024/05/21 03:26

          链栈是借用单链表实现的栈。其不同于顺序栈之处在于:

1、链栈的空间是程序运行期间根据需要动态分配的,机器内存是它的上限。而顺序栈则是

静态分配内存的。

2、链栈动态分配内存的特性使得它一般无需考虑栈溢出的问题。

          链栈的的组织结构如下图所示。容易发现其是架构的单链表的基础之上的。

 

              下面介绍下我用C++实现的链栈,VC6下调试。

1、文件的组织结构

 

2、ls.h链栈类的说明

#ifndef _LS_H_#define _LS_H_typedef int dataType;struct node                   //链栈节点{dataType data;            //数据域node *next;               //指针域};class ls{public:ls();~ls();void push(dataType var); //压栈void pop();              //出栈.出栈之前并不判断栈是否已空.需要通过isEmpty()判断dataType stackTop();     //取栈顶元素,栈顶无变化.不提前判断栈是否为空bool isEmpty();          //判空.空返回true,反之返回false//bool isFull();         //判满.链栈是动态分配内存空间的,无需判满private:node *top;               //栈顶指针.top=NULL表示为空栈};#endif


3、ls.cpp链栈类成员函数的定义

#include <iostream>#include "ls.h"using namespace std;ls::ls(){top = NULL;            //top=NULL表示链栈为空}ls::~ls(){node *ptr = NULL;while(top != NULL)     //循环释放栈节点空间{ptr = top->next;delete top;top = ptr;}}void ls::push(dataType var){node *ptr = new node;ptr->data = var;        //新栈顶存值ptr->next = top;        //新栈顶指向旧栈顶top = ptr;              //top指向新栈顶}void ls::pop(){node *ptr = top->next;  //预存下一节点的指针delete top;             //释放栈顶空间top = ptr;              //栈顶变化}dataType ls::stackTop(){return top->data;       //返回栈顶元素,并不判断栈是否已空}bool ls::isEmpty(){return top == NULL;     //栈顶为NULL表示栈空}


4、main.cpp

#include <iostream>#include "ls.h"using namespace std;int main(){ls exp;int i = 0;for(i=0;i<3;++i){exp.push(i);}for(i=0;i<3;i++){if(!exp.isEmpty()){cout<<exp.stackTop()<<endl;exp.pop();}}return 0;}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 邮箱发的文件过期了怎么办 邮箱发送的文件过期怎么办 小米4s开不开机怎么办 小米平板关机后开不开机怎么办 公司老板跑路了社保怎么办 公司老板跑路社保怎么办 公司被公安局查封社保怎么办 小米四开不了机怎么办 小米的手机后壳裂了怎么办 公司没钱拖欠员工社保怎么办 小米note充不进去电怎么办 公司欠社保没交怎么办 公司不给转社保怎么办 小米note充电特别慢怎么办 小米小米note2充电慢怎么办 小米note充电红灯不闪烁怎么办 小米note充电红灯闪烁怎么办 小米note2突然充电慢怎么办 充电小米note2手机闪烁怎么办 小米6x上网慢怎么办 小米5数据上网慢怎么办 小米5c照相模糊怎么办 小米5充电很慢怎么办 iphone图库照片没了怎么办 我想通过微信号得到手机号怎么办 给充电宝充电慢怎么办 小米5s充不了电怎么办 百度网盘下载速度慢怎么办 负债累累没有钱没有资源怎么办 好福利密码忘了怎么办 手机无法申请百度网盘怎么办 魅族手机运行慢怎么办 阿里小宝卡流量用完了怎么办 阿里宝卡流量用完了怎么办 百度网盘本地空间不足怎么办 百度网盘空间不足怎么办 百度网盘容量不够怎么办 百度网盘内存不够怎么办 百度网盘储存空间不足怎么办 百度网盘手机号注销了怎么办 手机系统升级后照片没了怎么办