线性表--顺序栈(九)
时间:2022-07-28
本文章向大家介绍线性表--顺序栈(九),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一.介绍
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
二.代码实现
1.定义栈
#define Stack_Size 50
typedef struct
{
char elem[Stack_Size];//用来存放栈中的元素的一维数组
int top; //用来存放栈顶元素的下标,top为-1表示空栈
}SeqStack;
2.初始化顺序栈
void InitStck(SeqStack * S)
{
//构造一个空栈S
S->top = -1;
}
3.进栈
int Push(SeqStack * S, int x)
{
//将x置入S栈新栈顶
if (S->top == Stack_Size - 1)return(false);
S->top++;
S->elem[S->top] = x;
return(true);
}
4.出栈
int Pop(SeqStack * S, int *x)
{
//将S栈顶元素弹出,放到x所指定的存储空间中打出
if (S->top == 1)//栈为空
return(false);
else
{
*x = S->elem[S->top];//栈顶元素赋给
S->top--;//修改栈项指针
return(true);
}
}
5.读栈顶元素
int GetTop(SeqStack * S, int * x)
{
//将栈S栈顶元素读出,放到x所指的存储空间中,栈顶指针保存不变
if (S->top == -1)//栈为空
return(false);
else
{
*x = S->elem[S->top];//栈顶元素赋给
return(true);
}
}
代码来自《数据结构—用C语言描述》耿国华等人著。
若有错误,欢迎指出批评,欢迎讨论。 每文一句:如果敌人让你生气,那说明你还没有胜他的把握。如果朋友让你生气,那说明你仍然在意他的友情。
- tomcat请求处理分析(三) 绑定本地端口监听请求
- 利用FFmpeg对火眼一体摄像机的回调数据进行处理:YUV转H264,H264封装flv,所有输入都是在内存中。
- MySQL 传统复制中常见故障处理和结构优化案例分析
- sql带条件查找最小缺失编号
- activiti学习笔记(六) 监听器
- activiti学习笔记(五) 流程部署
- 打开文件open()函数的使用方法详解
- activiti学习笔记(四) 配置器
- WaitForMultipleObjects用法详解,一看就懂
- activiti学习笔记(三) 监听生命周期
- Assignment 2 | 斯坦福CS231n-深度学习与计算机视觉课程
- 五个值得深思的PHP面试题
- 5个值得深思的 PHP 面试问题
- activiti学习笔记(二) 获取流程实例
- 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 数组属性和方法