线性表------链栈
时间:2022-06-17
本文章向大家介绍线性表------链栈,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
链栈的存储结构其实就是单链表,插入和删除在链表头进行(书上这么写,个人认为只要是在链表一端操作即可)。
链栈的数据结构类型为:
#include <cstdio>
#include <cstdlib>
typedef int DataType;
struct LinkStack
{
DataType data;
struct LinkStack *next;
};
基本操作实现:
//初始化头节点, 数据域存储链栈大小,指针域置空
void InitStack(LinkStack &s)
{
s.data = 0;
s.next = NULL;
}
bool isEmpty(LinkStack &s)
{
return s.data == 0 ? true : false;
}
void Push(LinkStack &s, DataType e)
{
LinkStack *p;
p = (LinkStack*)malloc(sizeof(LinkStack));
p->data = e;
p->next = s.next;
s.next = p;
s.data++;
}
DataType Pop(LinkStack &s)
{
if(isEmpty(s))
{
printf("Empty!n");
return NULL;
}
LinkStack *p;
DataType top;
p = s.next;
s.next = p->next;
s.data--;
top = p->data;
free(p);
return top;
}
测试代码:
int main()
{
LinkStack s;
InitStack(s);
for(int i = 0; i < 10; i++)
Push(s, i);
int t;
while(!isEmpty(s))
{
t = Pop(s);
printf("%d ", t);
}
printf("n");
t = Pop(s);
Push(s, 100);
t = Pop(s);
printf("%dn", t);
return 0;
}
- 洛谷P3209 [HNOI2010]PLANAR(2-SAT)
- javascript 面向对象(多种创建对象的方式)
- 1711: [Usaco2007 Open]Dingin吃饭
- 1574: [Usaco2009 Jan]地震损坏Damage
- HTTPS科普(转) 为什么需要https
- 1590: [Usaco2008 Dec]Secret Message 秘密信息
- 1751: [Usaco2005 qua]Lake Counting
- 算法模板——单个值欧拉函数
- webpack前言:前端模块系统的演进
- webpack学习(一):webpack 介绍&安装&常用命令
- pd_ds中的hash
- webpack学习(二):先写几个webpack基础demo
- js实现php中sleep()延时的功能
- 洛谷P2118 比例简化(暴力)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 8.深入k8s:资源控制Qos和eviction及其源码分析
- 1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知
- CNN不用乘法? AdderNet和DeepShift论文理解
- 动手构建地铁关系网,实现最短路径查询
- Java并发编程(08):Executor线程池框架
- 用Scipy求解单个正态总体的置信区间
- 架构设计 | 基于电商交易流程,图解TCC事务分段提交
- 用Gaussian做CASSCF计算
- 用Gaussian 16计算振动分辨的紫外-可见吸收光谱
- graylog日志分析系统上手教程
- 使用Seq搭建免费的日志服务
- 拜托!这才是分布式系统CAP的正确打开方式!
- 接口管理这下总会了吧?
- 交子杯 - 2020 - AI赛道 - TOP1
- Valine 一款快速、简洁且高效的无后端评论系统