| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 2021-12-21 数据结构 期末复习机考之二 栈 -> 正文阅读 |
|
[数据结构与算法]2021-12-21 数据结构 期末复习机考之二 栈 |
栈和队列都是特殊的线性表,因此定义栈和队列与之前的线性表异曲同工: 顺序栈顺序栈的架构?
?1、创建栈 或
或使用STL库的栈 ? 头文件#include <stack> 关于入栈操作
? 或者 ? 关于出栈操作 可以
或者? ? 亦或者 这里是先打印再弹出? 判栈满的函数 ? ?用STL栈无法实现栈满的监测,因为STL栈没有栈满这个概念。 链栈我们知道栈顶是一个栈做压入和弹出的地方,而链表形态下也拥有一个头指针,那么我们就可以利用头指针作为栈顶指针,对于链栈而言,因为栈顶是在链表头部,因此不存在栈满的情况(除非内存已满) 对于链栈而言,它和链表空的条件一样,就是头指针(栈顶指针)top==NULL? 栈的应用【编程】递归说到递归,著名的斐波拉契数列就是一个递归数列,而斐波拉契数就是指符合斐波拉契数列运算方式得来的数。 ?上图就是斐波拉契数列的原理,可以看到,除了0,1之外,斐波拉契数列的n项等于n-1和n-2项之和。直观实现特定位数的斐波拉契数列的程序在上面。但是不够简洁,不能提现斐波拉契的精髓 看看修改过的程序:
实现了,优美的递归运用,通过三行代码实现feibo。而递归是🈶?编译器使用栈来实现的。 栈的第二个应用——四则运算求值后缀表示法转换为了解决四种运算在一条式子处理的先后次序而发明的算法 例如:? ? ? ? ? ? ? ? ? 9 +(3-1)* 3+ 10 / 2????????这一条表达式,
我们了解了后缀表示法到式子的运算原理,我们开始实际应用,第一步:我们如何编写将中缀表达式转化为后缀表达式的程序呢? 规则:从左到右遍历整个表达式,若是数字就输出,若是符号,则比较与栈顶符号的优先级,如果是右括号或者优先级不高于栈顶符号则栈顶符号依次输出,最后将符号入栈,依次类推。 例如上边的表达式:9 +(3-1)* 3+ 10 / 2??
呼,意外的多,下篇是队列 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 16:54:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |