栈操作
时间:2020-03-26
本文章向大家介绍栈操作,主要包括栈操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 // 定义栈的结构体 5 typedef struct S 6 { 7 int data; 8 struct S *next; 9 } S, *SList; 10 11 // 初始化 12 void init(SList &top) 13 { 14 top = (S *)malloc(sizeof(S)); 15 top->next = NULL; 16 } 17 // 压栈 18 bool push(SList top, int e) 19 { 20 //if无剩余可分配内存, 返回false 21 SList p = (S *)malloc(sizeof(S)); 22 p->data = e; 23 p->next = top->next; 24 top->next = p; 25 return true; 26 } 27 // 弹栈 28 bool pop(SList top, int &e) 29 { 30 if (top->next == NULL) 31 return false; 32 SList p = (S *)malloc(sizeof(S)); 33 p = top->next; 34 e = p->data; 35 top->next = p->next; 36 free(p); 37 return true; 38 } 39 // 判断栈是否为空 40 bool empty(SList top) 41 { 42 if (top->next == NULL) 43 return true; 44 return false; 45 } 46 // 遍历打印栈 47 void print(SList top) 48 { 49 SList p = (S *)malloc(sizeof(S)); 50 p = top->next; 51 while (p != NULL) 52 { 53 printf("%d ", p->data); 54 p = p->next; 55 } 56 printf("\n"); 57 } 58 int main() 59 { 60 SList top; 61 int x; 62 init(top); 63 printf("判断栈是否为空 %d\n", empty(top)); 64 printf("空栈能否pop() %d\n", pop(top, x)); 65 push(top, 10); 66 push(top, 9); 67 push(top, 8); 68 push(top, 7); 69 push(top, 6); 70 // 栈不为空时遍历打印栈中内容 71 print(top); 72 if(pop(top, x)) 73 { 74 printf("%d\n", x); 75 } 76 return 0; 77 }
原文地址:https://www.cnblogs.com/sqdtss/p/12575078.html
- NewSQL数据库大对象块存储原理与应用
- 使用xUnit为.net core程序进行单元测试(下2)
- MongoDB + Spark: 完整的大数据解决方案
- 如何实现自然语言处理的集束搜索解码器
- PostgreSQL 使用advisory lock或skip locked消除行锁冲突, 提高几十倍并发更新效率
- 流动的数据——使用 RxJS 构造复杂单页应用的数据逻辑
- 内存泄漏的检测、解决、防止
- 大数据Hadoop快速入门教程
- 用Rust解决C语言的隐患
- GAN学习指南:从原理入门到制作生成Demo
- 从糖尿病监测看智能医疗发展
- Apache Beam:下一代的数据处理标准
- 机器学习算法线上部署方法
- 饿了么推荐系统:从0到1
- 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 数组属性和方法
- 自然资源部贡献的Landuse数据(2000、2010、2020)
- LoRa节点开发——SDK整体设计思路
- 01 . Nginx简介及部署
- 02 . Nginx平滑升级和虚拟主机
- LoRa节点开发——LoRaWAN节点入网代码详解
- 03 . Nginx日志配置及日志切割
- 04 . Nginx的Rewrite重写
- 05 . Nginx的反向代理与负载均衡
- 06 . Nginx静态资源缓存
- 07 . Nginx常用模块及案例
- 08 . Nginx状态码
- 09 . Nginx配置LNMP和LNMT架构
- 01 . Mysql简介及部署
- jquery点击按钮,添加一行input输入框
- 02 . Mysql基础操作及增删改查