- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 编译原理笔记
编译的第一个阶段,相当于你翻译一段英文语句你肯定是先看其词性在语法分析的过程中,编译器会将词法分析器生成的词法单元流转化为抽象语法树(AST)。抽象语法树是一种树状数据结构,可以表示编程语言中的控制流、数据类型、操作符以及变量等等,是后续处理的基础。语义分析是编译器中的一个重要组成部分,它的任务是在语法分析的基础上进一步检查程序的语义正确性。语义分析器会对抽象语法树(AST)进行处理,进行类型检查、变量声明、作用域检查等。
2023-04-14 14:25:38
890
原创 复试常考问题考前突击
对称密钥和非对称密钥是密码学中的两个重要概念。对称密钥也称为共享密钥,是指加密和解密所用的密钥是同一个密钥。发送方和接收方都需要拥有该密钥,发送方使用该密钥将消息进行加密,接收方使用同一个密钥将消息进行解密。对称密钥加密算法的优点是加密和解密速度快,缺点是密钥的管理比较困难,存在密钥泄露的风险。非对称密钥也称为公钥密码,是指加密和解密所用的密钥是不同的。发送方使用接收方的公钥对消息进行加密,接收方使用自己的私钥将消息解密。由于私钥是保密的,所以非对称密钥算法可以提供更高的安全性。
2023-03-31 19:39:04
541
1
原创 六月集训第十二日-链表
我的思路:题目描述:我的题解:我的思路:题目描述:我的题解:我的思路:题目描述:没写出来但是看懂了题解太晚了有时间再补先贴一下别人的题解
2022-06-16 01:47:54
215
原创 数据结构——八大排序
本章实现默认是基于升序排序的原则进行排序1.插入排序:思路:时间复杂度:运行结果如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NSZgH0y-1654225565348)(D:\刷题图片\image-20220603105715109.png)]思路:运行结果如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cMXRnuWE-1654225565349)(C:\Users\达芬奇\AppData\Roa
2022-06-03 11:06:51
269
原创 栈的顺序链式及共享栈的实现
1.栈的定义注意栈是个操作受限的线性表栈又被称为后进先出的线性表,简称为LIOF(last in first out)其特殊之处在于限制了这个线性表的插入和删除位置,他始终只在当前栈顶进行操作。数学性质: 个不同的元素进栈,出栈元素的不同排列的个数为 。上述公式也是灰常经典的 ,可采用的数学归纳法去证明。个人感觉顺序栈这块出题也就在卡特兰数出了其他没啥难度基本操作同时栈这个逻辑结构还分为了顺序栈,共享栈和链栈三种实现方式栈的ADT定义:顺序栈的清空:顺序栈的销毁:顺序栈的初始化:顺序栈的判满操作:
2022-06-01 00:38:41
1157
原创 顺序栈的实现
栈1.栈的定义栈是只允许在一端进行 插入或 删除的 线性表。注意栈是个操作受限的线性表栈顶:只允许插入或者删除栈底:固定的,不允许进行插入或删除的另一端空栈:不含任何数据元素的栈栈又被称为后进先出的线性表,简称为LIOF(last in first out)其特殊之处在于限制了这个线性表的插入和删除位置,他始终只在当前栈顶进行操作。栈的插入操作:也叫做进栈,也叫做压栈与入栈。栈的删除操作:也叫做出栈,有时也被称为弹栈。数学性质: n个不同的元素进栈,出栈元素的不同排列的个
2022-05-28 23:12:59
1216
原创 线性表合集
线性表线性表:线性表是具有相同数据类型的n个(n>=0)个数据元素的有限序列,其中n为表长,当n==0是线性表为空表,若是使用 L命名为线性表,其结构为:L=(a1,a2,a3,a4,....,an);其中a1为表头元素,an为 表尾元素除第一个元素外,每一个元素 有且仅有一个直接前驱,除最后一个元素外,每一个元素 有且仅有一个直接后继,这就是线性表的 逻辑特性。注意:线性表仅仅是一种逻辑结构,表示元素之间一对一的相邻关系。后面所要讲的顺序表和链表值得是存储结构,切勿将其混淆。线性表的顺
2022-05-23 01:08:17
260
原创 静态链表的概念与基本操作
静态链表顾名思义就是用静态数组的方式来模拟一个链表的实现,这个在没有指针类型的高级机器语言会出现,但是用途感觉还是很少的,由于是借助于一个固定长度的数组来描述线性表的链式存储结构,灵活度比较低的。和链表的一样,adt中含有数据域 data和指针域 next,但是静态链表中的指针常常被称之为 游标,也就是 cur,和顺序表相同初始化之前要预先分配一块连续的内存空间。静态链表图示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J8kL2Oaq-16532387052.
2022-05-23 00:59:39
459
原创 循环链表的实现
循环单链表的基本算法实现几乎和单链表一致,所不同的时候就是表尾的判断其中会导致操作不同,所要牢记的一点是正是因为循环单链表是一个环,所以初始化的时候next指针要指向自己,同时任何位置上的插入和删除都是等价的,无需判断是否在表尾这里主要实现一下几个和单链表有差别的地方循环双链表的定义typedef int ElemType;//为什么交cs呢circularsingle,真是取名鬼才typedef struct CsNode{ ElemType data; // 存放结点的.
2022-05-22 00:24:36
744
原创 双链表的增删
双链表的实现:就是再单链表的基础上加个前驱结点,其实相较于单链表操作更加简单了,由于王道书上就指出了增加和删除的操作,这里也就简单实现下,其他操作都和单链表类似状态码等信息定义#define OK 1#define ERROR 0#define True 1#define False 0typedef int Elemtype;//函数状态码typedef int Statue;双链表的定义//定义adttypedef struct Node { Elemtype dat
2022-05-19 23:15:29
446
原创 线性表链式表示-单链表
上一节我们所讲的顺序存储其实是有缺陷的,最大的缺点就是数据的增删的时候可能会移动大量的数据,然后链式存储则可以呵呵好解决这个问题当我们用链式来存储线性表的时候,不需要地址连续的存储单元,即 不要求逻辑相邻的元素在物理位置上也相邻,它通过 链建立起数据元素之间的逻辑关系,因此插入或者删除时候不需要移动元素只需要修该指针,但是也会因此失去 随机存取的特点只能进行 顺序存取首先要说明的是单链表的实现线性表中的单链表最为重要的特点我认为还是 如果要寻找目标元素只能找他的前一个结点元素,为了方便单链表的创
2022-05-19 01:25:35
437
原创 线性表之顺序表
线性表线性表:线性表是具有相同数据类型的n个(n>=0)个数据元素的有限序列,其中n为表长,当n==0是线性表为空表,若是使用 L命名为线性表,其结构为:L=(a1,a2,a3,a4,....,an);其中a1为表头元素,an为 表尾元素除第一个元素外,每一个元素 有且仅有一个直接前驱,除最后一个元素外,每一个元素 有且仅有一个直接后继,这就是线性表的 逻辑特性。注意:线性表仅仅是一种逻辑结构,表示元素之间一对一的相邻关系。后面所要讲的顺序表和链表值得是存储结构,切勿将其混淆。线性表的顺
2022-05-15 23:09:11
1638
原创 数据结构—算法和算法评价
算法与算法评价算法:是解决特定问题求解步骤的描述,在计算机中表现为指令集的有序序列,并且每条指令表示一个或者多个操作。算法的特性:算法具有五大特性:分别是输入,输出,有穷性,确定性和可行性输入输出:算法具有零个或者多个输入,算法可以没有输入(如打印语句),但一定要有输出(没有输出你要这个算法干嘛?),所以算法至少有一个或者多个输出。有穷性:算法在进行有限个步骤之后,会自动结束,并且每个步骤在可以接受的时间内完成。确定性:算法的每一个步骤都有确定的含义,不会出现二义性。可行性:算法的每一步都
2022-05-13 19:15:53
735
原创 数据结构二刷整理
数据结构绪论:框架梳理:展开过大实在放不下TAT1.什么是数据结构?数据结构是一门研究非数值计算的程序设计问题的操作对象,以及他们之间的关系和操作等相关问题。*程序设计=数据结构+算法2.基本概念和术语数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号合集。数据元素:是组成数据的有一定意义的基本单位,在计算机通常最为整体处理也被称作记录。(如mysql中的一行记录)数据项:一个数据元素可以由若干个数据项组成,注意其是数据中不可分割的最小单
2022-05-12 14:57:35
231
原创 力扣—哈希表
2022/5/7(哈希表)本来已经写好了结果电脑没电。。重新随便写写了题目描述:2006. 差的绝对值为 K 的数对数目 - 力扣(LeetCode) (leetcode-cn.com)给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。|x| 的值定义为:如果 x >= 0 ,那么值为 x 。如果 x < 0 ,那么值为 -x 。我的题解:int coun
2022-05-07 21:26:44
345
原创 Leetcode--数组模块
纪念一下leetcode刷了50题呜呜,最近总算把数据结构看完了题目描述剑指 Offer 03. 数组中重复的数字 - 力扣(LeetCode) (leetcode-cn.com)找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。我的题解:手写快排超时,然后qsort得库函数通过,感觉是哪里逻辑错误了,但是后面发现哈希好像更快就改哈希
2022-05-06 13:10:17
291
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人