链栈的表示和实现(C++)
简介
链栈是采用连式存储结构的一种数据结构;由链表来表示
下面介绍其存储结构
1、存储结构
#define elemType int
//typedef int elemType;
typedef struct{elemType data;//节点数据域struct stackNode *next;//节点指针域
}stackNode,*linkStack;//linkStack是指向stackNode的指针数据类型
2、链栈的初始化
构造空栈,将栈顶指针置空(无需设置头结点)
#define status int
//typedef int status;
status init_Link_stack(linkStack &S){//构造空栈,栈顶指针置空S=NULL;return 1;
}
3、入栈
1.为即将入栈的元素分配空间,并用指针p指向它
2.将新节点的指针域置空
3.将新节点置栈顶
4.将栈顶指针修改为p
#define selemType int
//typedef int selemType;
status push(linkStack &S,selemType e){linkStack p;p=new stackNode;p->data=e;p->next=S;S=p;return 1;
}
4、出栈
1.判断栈是否为空
2.将栈顶元素赋值为e
3.暂时保存栈顶元素的空间
4.修改栈顶指针,指向新的栈顶(即出栈前元素下面的那个元素)
5.释放原来栈顶指针的空间
status pop(linkStack &S,selemType &e){linkStack p;if(S==NULL)return 0;e=S->data;p=S;S=S->next;delete p;return 1;
}
5、取栈顶
1.判断栈是否为空
2.取栈顶元素
selemType get_Top(linkStack S){if(S!=NULL)return S->data;
}
链栈的表示和实现(C++)相关推荐
- 数据结构与算法(3-1)栈(顺序栈、两栈共享空间、链栈、栈的计算器)
目录 一.顺序栈 存储结构 总代码 二.两栈共享空间 存储结构: 总代码: 三.链栈 存储结构: 总代码: 一.顺序栈 存储结构: 栈特点:先进后出,后进先出.(特殊的线性表) 入栈时在栈顶添加元素, ...
- 十进制转换成十六进制c语言 链栈,C语言 链栈 实现十进制转换二进制,八进制,十六进制...
C语言 链栈 实现十进制转换二进制,八进制,十六进制 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 最后运行结果:代码:#incl ...
- 数据结构遍历顺序栈_链栈的初始化与遍历
初始化 我们在定义完一个数据结构的结构体之后,需要初始化才能使用.比如顺序栈的初始化,也就是构造一个空栈就行了.那么链栈如何初始化呢? 链栈初始化的目标也是要构造一个空栈.根据结构体定义,空栈是什么一 ...
- 用链栈实现简易四则运算计算器(php版)
栈是一种限定仅在表尾进行插入和删除操作的线性表.栈的应用有很多,比如常见的递归,计算机表达式求值等.下面我们用栈来实现简易的四则运算计算器. 列一下本文的思路: 实现链栈的数据结构及其操作 中缀表达式 ...
- java使用链栈实现迷宫求解
java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html java实现链栈的代码: package stackapplicatio ...
- 使用链栈来对十进制数进行任意进制的转换
使用辗转相除法,通过链栈来实现一个十进制数字对任意进制的一个转换,提前声明,这里不包括一进制和零进制的转换. #include"stdio.h" #include<stdli ...
- java使用链栈实现数制转换
java实现链栈在前面有所介绍:http://www.cnblogs.com/lixiaolun/p/4644141.html 将前面java实现链栈的代码稍作修改: package linkedst ...
- 数据结构第八篇——链栈
♥注:未经博主同意,不得转载. 链栈 链式存储的栈称为链栈.可用单链表来实现链栈,因此其节点结构与单链表的结构相同.下面给出这种结构的定义: 若要了解顺序栈的内容请跳转至http://www.cnbl ...
- 注意链栈next指针的指向,与队列不同:
如果插入一个元素,它的next指针是指向前一个已经在栈中的元素的 而队列则是,插入一个元素,其next指针是往外指,指向空. 链栈的next指针之所以这样,是方便删除操作,这一点可以在编程的过程中体会 ...
- 第5周实践项目2 链栈的算法库建立
listack.h#ifndef LISTACK_H_INCLUDED #define LISTACK_H_INCLUDEDtypedef char ElemType; typedef struct ...
最新文章
- HDU 3507:Print Article
- ai文件如何打开及常见文件的打开方式
- 信息系统项目管理师:第6章:项目进度管理-章节真题
- python docker库
- python numba报错_python – 使用pip升级到numba 0.16会导致错误
- Myeclipse修改jdk版本流程
- linux mysql 5.7.10_CentOS7 安装 MySQL 5.7.10
- 微信小程序报错40163-“errmsg“解决方案
- flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
- 阿里数据科学家一次讲透数据中台,15页PPT精华,速转走!
- sox免安装直接使用
- HPE主机根据磁盘序列号或位置确定Naa号
- linux加载模块失败,linux 第二次加载netlink模块时,内核创建sock失败
- android 手机分区失败怎么办,一种Android系统Data分区自修复方法及系统专利_专利查询 - 天眼查...
- 图解HIVE页面单跳转化率
- 计算机一级excel建立数据透视表,计算机二级Office:Excel数据透视表和透视图
- 十进制如何转化成二进制c语言,c语言怎么将十进制转化成二进制
- php工程师是干什么的
- linux ssr客户端 npmjs,umijs使用服务器端渲染ssr
- bldc电机减速原理
热门文章
- 字符串包含单引号加上mybitis${}写法引发的plese exclude tableName or statementId异常
- vue3实战项目——网易云App【01-项目准备】
- XP与Win7默认下时间分隔符不同
- 微信消息收发与微信内部emoji表情转义
- java severlet 获取当前路径_Java 获取当前路径的方法总结
- linux宝塔关闭防火墙,宝塔控制面板如何关闭防火墙
- C语言编程————杨辉三角
- 【济南校区】将来的你,一定会感谢现在拼命的自己
- 共享美容院营销新概念与盈利模式
- 前端开发学习笔记(一):HTML