数据结构【静态栈】代码实现
时间:2022-07-22
本文章向大家介绍数据结构【静态栈】代码实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#include "pch.h"
#include <iostream>
typedef struct sTack
{
int * pData;
int nSize;
int nTop;
} *PSTACK;
void initStack(PSTACK pStack, int nSize);
bool stack_isEmpty(PSTACK pStack);
bool stack_isFull(PSTACK pStack);
void stack_push(PSTACK pStack, int nData);
void stack_pop(PSTACK pStack, int &nData);
void show_stack(PSTACK pStack);
void initStack(PSTACK pStack, int nSize)
{
pStack->pData = (int*)malloc(sizeof(int) * nSize);
pStack->nSize = nSize;
pStack->nTop = 0;
}
bool stack_isEmpty(PSTACK pStack)
{
if (pStack->nTop == 0)
{
return true;
}
return false;
}
bool stack_isFull(PSTACK pStack)
{
if (pStack->nTop == pStack->nSize)
{
return true;
}
return false;
}
void stack_push(PSTACK pStack, int nData)
{
if (stack_isFull(pStack))
{
std::cout << "栈空间满了!!" << std::endl;
return;
}
pStack->pData[pStack->nTop] = nData;
pStack->nTop++;
}
void stack_pop(PSTACK pStack, int & nData)
{
if (stack_isEmpty(pStack))
{
std::cout << "栈空间空了!!" << std::endl;
return;
}
nData = pStack->pData[pStack->nTop - 1];
pStack->nTop--;
}
void show_stack(PSTACK pStack)
{
if (stack_isEmpty(pStack))
{
return;
}
for (int i = pStack->nSize - 1; i >= 0; --i)
{
std::cout << pStack->pData[i] << "t";
}
std::cout << std::endl;
}
int main()
{
sTack s;
initStack(&s, 6);
stack_push(&s, 1);
stack_push(&s, 2);
stack_push(&s, 3);
stack_push(&s, 4);
stack_push(&s, 5);
stack_push(&s, 6);
int nData;
stack_pop(&s, nData);
std::cout << "弹出的元素为:" << nData << std::endl;
stack_push(&s, 7);
show_stack(&s);
}
- 图书管理系统【部署开发环境、解决分类、图书、前台页面模块】
- 图书管理系统【用户、购买、订单模块、添加权限】
- 04-02.总结switch,for,while,do。while跳转语句
- 图书管理系统【总结】
- JDBC【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】
- JDBC【事务、元数据、改造JDBC工具类】
- JDBC【数据库连接池、DbUtils框架、分页】
- HTTP常见面试题
- Java基础-18(01)总结Map,HashMap,HashMap与Hashtable区别,Collections工具类
- 一个oracle查询引起的bug (r4笔记第59天)
- Java基础-18(02)总结Map,HashMap,HashMap与Hashtable区别,Collections工具类
- 特殊的物化视图刷新 (r4笔记第77天)
- 通过单例模式模拟RAC连接 (r4笔记第76天)
- 网站上的验证码是怎么产生的?
- 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 数组属性和方法
- 走近STL - map,只愿一键对一值
- springmvc之使用servlet原生API作为参数
- 走近STL - 填上list删除的大坑
- springmvc之RequestMapping中的请求参数和请求头
- springmvc之RequestMapping结合@PathVariable使用
- springmvc之CookieValue注解
- springmvc之处理模型数据ModelAndView
- springmvc之异常处理ResponseStatusExceptionResolver
- Java矩阵快速幂实现
- 走近STL -- 你好,List
- 我能看懂的MakeFile(自命名,多文件,多目标)
- Posix信号量与cond条件变量,到底该选谁?
- 信号量--System V信号量 与 Posix信号量
- 文件空间映射mmap()函数(是什么,为什么,怎么用)
- C++下shm共享内存模块