数据结构
文章平均质量分 61
机器人工程师sgk
热爱一切科技事物。涉及领域包括:非标自动化设计、嵌入式软硬件开发、深度学习、人工智能等。私信进嵌入式技术交流群。
展开
-
# 数据结构---1.栈的实现
数据结构—1.栈的实现注:虽然学完了一遍栈的应用,但我还是不能给出关于栈的定义。我能理解它作为一种记录数据或者删除数据的一种操作。但是,栈解决了什么问题,有什么注意事项,还有什么高阶操作,我暂时也不会,只等后期的不断应用与思考在做总结。一、栈的理解栈是一种对数据进行存取或删除的操作,所以它的基本操作有3个:入栈或者压栈(push)、出栈(pop)、判断栈是否为空。栈由于特殊的结构,类似于手枪子弹夹。入栈操作即:将子弹一颗颗压入弹夹。此时有个特点,最先压入的(第一颗子弹)是最后出来的。出栈操作即:将原创 2021-11-21 01:18:29 · 193 阅读 · 3 评论 -
数据结构---2.栈的应用
数据结构—2.栈的应用一、应用举例1继续上一次的内容。上一次举的例子是,用栈来实现逆波兰表示法,但是,当时我们是自己将中缀表示法(通常用的数学表示法)转换为了后缀表示法,这次,我们尝试用栈的知识,写程序实现将一个___中缀表示法的表达式转换为后缀表示法___。首先,我们是如何将一个中缀表达式转换为后缀表达式的呢?如上次的例子:(1 + 2)* (3 - 4),首先:从左往右看,遇到第一个左括号,忽略。遇到数字1,直接打印输出,遇到运算符+,入栈保存,遇到数字2,也直接打印输出。遇到右括号),将原创 2021-11-21 17:42:00 · 878 阅读 · 0 评论 -
数据结构---5.队列的应用
数据结构—5.队列的应用一、双端队列什么是双端队列呢?首先,它还是一个循环队列(环形队列),但是它的特点就是队列头head也可以入队列,队列尾tail也可以出队列。所以它就有了新的应用,我们先画图研究下上述情况下它的区别在哪儿?第一种情况下:head - 1,但是如图所示,下标为0的存储空间的上一个是SIZE,而不是0 - 1 = -1,如何表示呢?head =(head - 1 + SIZE)% SIZE;然后,将要存储的元素入队列。第二种情况下:先执行出队列,然后更新head =(h原创 2021-11-27 21:36:14 · 1093 阅读 · 0 评论 -
数据结构---4.队列的应用
数据结构—4.队列的应用一、应用1解码,对于一串数字,将第一个数字删除,第二个数字排至这串数字的末尾,将第三个数字删除,将第四个数字排至末尾,循环下去直到这串数字都删除了。删除的数字就是真正的密码。举个例子:2. 代码实现/* * @name 队列的应用 * @Date 2021年11月23日 * @Author 机器人工程师sgk*/#include <stdio.h>#include <string.h>#define SIZE 512char原创 2021-11-27 21:35:19 · 841 阅读 · 0 评论 -
数据结构---3.队列
数据结构—3.队列一、队列的理解队列的特点:生活中都有过排队取快递的经历,当我们去排队的时候,往往我们是最后一个,但我们的后面一定会有人来,成为最后一个。前面排队的也肯定是比我先离开的,最前面的离开后,他后面的又变成了队列的头,业务都是最前面的人先办理的。抽象出来的话,队列一定是有一个头和尾的,而且一开始头和尾是同一个,其次就是先进入队列的人先出去,这里与栈不同。图示函数实现1、入队列:队列的尾自增,依次往后。2、出队列:队列的头自增,依次往后。3、判断队列是否为空:头 == 尾原创 2021-11-22 19:20:20 · 463 阅读 · 0 评论