自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 4、优化阶段

编译程序总框架:优化:对程序进行各种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。等价:不改变程序的运行结果。有效:目标代码运行时间短,占用存储空间小。>目的产生更高效的代码>遵循的原则等价原则:优化不应改变程序运行的结果有效原则:使优化后所产生的目标代码运行时间较短,占用的存储空间较小合算原则:应尽可能以较低的代价取得较好的优化效果>优化的级别:局部优化、循环优化、全局优化>优化的种类删除多余运算(删除公用子表达式)合并已知量复写传播。

2024-06-12 13:27:15 398

原创 编译原理期末复习

设文法G[Z],如果存在某个句子对应两棵不同的语法树;不可兼或二种不同的最左推导;不可兼或二种不同的最右推导,则称该文法是二义性的。

2024-06-11 15:28:57 199

原创 《永生之后》读后

故事以长生区的主席与生死区的女科学家相爱,长生区的主席最终被生死区的生活所吸引孕育了生命为结尾。小说最后女科学家坦言,她的祖父是外星人抑制认为文明而发明长生药的传递者,他们的孩子说妈妈最擅长讲故事了,这一点激发了男人的思考,同时也给我们想象的空间,这种说法也许是一种策略为了让人们摆脱长生药。文章以2120年背景创作,人类进入永生之年,发现了延长寿命的药物。长生区的人们由于生命的延长,更加谨慎,不再去探索外太空,进行危险的科学研究,没有子女陪伴的生活逐渐失去了激情,文明停止前进。而生死区的人们仍然充满活力。

2024-06-10 21:53:07 363

原创 词法分析、语法分析

词法分析的任务是:从左往右逐个字符地扫描源程序,产生一个个的单词符号。也就是说,它会对输入的字符流进行处理,再输出单词流。执行词法分析的程序即,或者说扫描器。词法分析的成果就是由一系列单词符号构成的单词流。单词种别通常用整数编码表示若一个种别只有一个单词符号,则种别编码就代表该单词符号。假定基本字、运算符和符都是一符一种。若一个种别有多个单词符号,则对于每个单词符号,给出种别编码和自身的值。

2024-05-05 21:03:52 689

原创 高级程序设计-C++

为了保护类中的数据安全,在C++中将类中的成员分为两类:公有成员(用public声明);公有成员(包括数据成员和成员函数)既可以被类内的成员函数访问,又可以被类外的对象访问。私有成员(包括数据成员和成员函数)只能被类内的成员函数访问,不能被类外的对象访问。通常,C++会为每个对象的数据成员分配各自独立的存储空间,像结构体成员那样。所有成员必须在类的内部声明,一旦类定义完成后,没有其他方式添加成员。同样地,在使用引用或指针访问类的成员之前,必须已经定义类。每个类还可以包含成员函数,能够访问类自身的所有成员。

2024-04-11 19:44:36 848

原创 2、高级语言的语法描述

一组规则,用它可以形成和产生合适的程序:单词符号的形成规则。单词符号的形成规则单词符号是语言中具有独立意义的最基本结构一般包括:常数、标识符、基本字、算符、界符等描述工具:有限自动机:语法单位的形成规则。语法单位通常包括:表达式、语句、分程序、过程函数、程序等;描述工具:上下文无关文法。

2024-03-18 22:08:42 1967

原创 编译程序概述

词法分析:识别出句子中一个个单词。语法分析:分析句子语法结构。语义分析与中间代码的生成:根据句子含义,初步翻译。中间代码:三元式、四元式、树优化:对前段产生的代码进行加工变换,以期在最后阶段产生更高效的目标代码。目标代码生成:把优化后的代码转换成低级语言代码。目标代码三种形式:绝对机器指令代码(可直接运行)可重定位的机器指令代码(需要链接)汇编指令代码(需要进行汇编)

2024-03-09 15:37:58 300

原创 已知先序、中序输出后序

一个树的先序遍历序列及该树的中序遍历序列,每个序列中仅含有小写字母,且没有重复的。已知一个二叉树的先序遍历序列和中序遍历序列,求这棵树的后序遍历序列。字母,每个序列本身的字符间没有空格。一个树的后序遍历序列。

2024-03-01 14:42:49 318

原创 单链表合并

建立两个升序排列的单链表,表中元素的数据类型是整数,将建立的两个链表合并为。【输入形式】分别输入两组数据,两组数据以回车分隔;【输出形式】输出合并后的结果,数据之间用单个空格隔开。一个新的升序的单链表,并输出显示已合并好的有序的单链表。有效数据元素,每个数据之间用空格隔开。

2024-02-29 22:32:34 277

原创 单链表操作

【问题描述】已知线性表中的元素以值非递减有序排列。【输出形式】删除后的链表数据。它们的值可以和表中的元素相同。并以单链表作为存储结构。若表中存在这样的元素。这里注意是大于且小于。

2024-02-28 11:31:14 241

原创 顺序表插入

【问题描述】设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置。【输入形式】输入整数递增有序序列和插入的元素x,整数之间用逗号分开。1,5,6,10,14,17 //注:该行是有序顺序表的数据;【输出形式】输出插入后的有序序列,整数之间用逗号分开。【样例输出】1,5,6,7,10,14,17。6 //注:顺序表元素个数。7 //注:该行是插入值x;上,以保持该表的有序性。

2024-02-27 21:58:49 483

原创 顺序表操作

试对顺序表编写实现上述操作的算法。指明同一表中的元素值各不相同。为三个非递减有序的线性表。注意此题用顺序表编写程序。【输入形式】第一行为。【输出形式】删除后的。

2024-02-27 21:26:35 228

原创 表达式括号匹配

【输入形式】输入包含上述三种括号的表达式,数值只需用整型数。编写判别给定表达式中所含括号是否正确配对出现的算法。【问题描述】假设一个算数表达式中可以包含三种符号:圆括号。表达式以字符串形式输入。【输出形式】匹配输出。

2024-02-26 20:19:48 435

原创 线性表 顺序结构

【问题描述】创建一个数据类型为整形的顺序结构的线性表完成输入,插入以及输出功能。【输入形式】先输入元素个数 再输入数据 输入插入的位置 插入元素。【输出形式】输出线性表。

2024-02-26 19:32:39 243

原创 完全二叉树顺序存储

图(a)所示的一般二叉树的存储结构如图(b)所示,图(b)中以0表示空结点。【问题描述】3、完全二叉树的顺序存储结构通常用一组地址连续的存储单元依。次自上而下、自左至右存储完全二叉树上的结点元素,对于一般二叉树,则应将。其每个结点与完全二叉树上的结点相对照,存储在一维数组的相应分量中。写算法输出二叉树中任一非空结点值的双亲结点的值,如果没有双亲则输出0。二叉树结点值输入,每个数之间用一个空格隔开,用。【输出形式】任一非空结点值的双亲结点值。表示空结点,树中所有非空结点值不。按照完全二叉树输入的结点个数。

2024-02-26 17:17:21 534 1

原创 二叉树的遍历

格),再分别采用先序、中序和后序算法对该二叉树进行遍历。【问题描述】采用先序遍历的顺序输入二叉树,度不为。的节点采用空格补全(

2024-02-26 16:38:07 209 1

原创 非线性结构,图

图是由顶点集V和弧集R构成的数据结构。

2024-02-22 23:04:11 802 1

原创 线性结构链队操作

【问题描述】采用队列存储数据元素。输入若干整数数值,如果为空队列,则新输入的数值。【输入形式】输入多个正整数,每个数之间用一个空格隔开,其中第一个数表示输入正整数。若一个新输入的数值小于队头和队尾元素的平均值,则该值入队,队头元素出。【输出形式】按照题目要求输出依次出队的数,每个数之间用一个空格隔开,如对应。的个数,剩下的数是要进入队列的数。队,否则仅该值入队。

2024-02-21 22:59:59 186

原创 线性表 链式结构

3 6 //插入位置与插入元素 如果插入位置不在范围内则不插入继续运行。【问题描述】创建链式线性表进行输入插入 寻找 删除 与 输出功能。1 2 3 4 5 //输入数据。4 // 输入删除要删除的元素。5 //输入元素个数。【输出形式】输出线性表。输入删除要删除的元素。

2024-02-20 21:09:38 259

原创 删除递增线性表中多余元素

试写一高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所。有元素的值均不相同),同时释放被删结点空间,并分析你的算法的时间复杂。【输出形式】输出删除相同的多余元素后的线性表元素,元素之间以空格分隔。已知线性表中的元素以值的递增有序排列,并以单链表作存储结构。【输入形式】输入递增数字序列,以空格进行分隔。

2024-02-20 21:07:52 185

原创 顺序表比较

【样例说明】输入样例中,去掉前缀2,3,4 表A'为(10,15),表B'为(21,12,27)2,3,4,21,12,27 //该行为A表数据。【输入形式】输入A、B两表的整数序列,整数之间用“,”号分开。2,3,4,10,15 //该行为A表数据。【输出形式】A>B输出1;≠空表,或者两者均不为空表,且 A'的首元小于。6 //该行为A表元素个数。5 //该行为A表元素个数。中除去最大共同前缀后的子表。【样例输出】-1 //(表示A

2024-02-20 18:59:01 162

原创 数据结构绪论

什么是数据结构?我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。数据结构=个体+个体的关系算法=对存储数据的操作。

2024-02-20 12:01:04 385

原创 查找、排序

查找表:由同一类型的数据元素或记录构成的集合。由于“集合”中的数据元素之间存在着松散的关系,因此查找表是一种应用灵便的数据结构,可以是线性表、树、图。关键字(key):数据元素或记录中某个数据项的值,用它可以标识识别一个数据元素或记录。如果一个关键字可以唯一地标识一个数据元素,则称其为主关键字;否则为次关键字。当数据元素仅有一个数据项,数据元素的值就是关键字。查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。

2024-02-19 22:16:54 2293 1

原创 return用法

在C语言中,return语句用于从函数中返回一个值,并结束函数的执行。其中,expression是要返回的值。在函数中可以使用return语句返回任何类型的值,包括基本数据类型、结构体、指针等。return;这种情况通常用于void类型的函数,表示函数执行结束并返回到调用者。

2024-02-18 22:23:05 327 1

原创 树和二叉树

把满足以下两个条件的树型结构叫做二叉树(Binary Tree):(1)每个结点的度都不大于 2;(每个结点最多有两棵子树,可以没有子树、可以有一棵子树、可以有两棵子树。(2)每个结点的孩子结点次序不能任意颠倒。二叉树的基本概念二叉树的性质二叉树的存储结构。

2024-02-18 13:08:51 445 1

原创 线性结构应用-栈与队列

栈作为一种限定性线性表,是将线性表的插入和删除运算限制为仅在表的一端进行,通常将允许进行插入、删除操作的一端称为栈顶(Top),另一端称为栈底(Bottom)。不含任何元素的栈称为空栈。栈是一种后进先出的线性表,简称为LIFO表。队列是一种操作受限的线性表,在表中只允许进行插入的一端称为队尾(rear),只允许进行删除的一端称为队头(front)。队列的插入操作通常称为入队列或进队列,而队列的删除操作则称为出队列或退队列。当队列中无数据元素时,称为空队列。

2024-02-17 22:13:20 486 1

原创 线性结构-线性表

线性结构是最常用、最简单的一种数据结构。而线性表是一种典型的线性结构。其基本特点是线性表中的数据元素是有序且是有限的。线性表是一种最简单的线性结构。特性:1.必存在唯一的一个“第一元素”、“最后元素”。2.除第一、最后元素外,均有 唯一的后继、唯一的前驱。3.线性表是一种相当灵活的数据结构,对线性表的数据元素可以访问、插入和删除。

2024-02-15 12:23:37 774 1

原创 《相信》读后

人生半程,一边是幸福的开始:事业有成,成立家庭,初为人父;一边是绝望的袭来:确诊绝症,无药可治,无医可救。怎么活?蔡磊在41岁这一年拿到了生命给他的最后一份考卷。本书完整讲述了蔡磊从发病之初的怀疑到面对现实之后,发起对渐冻症肌萎缩侧索硬化[2])的全面进攻,包括其治病经历、对人生的理解、对自己忙碌前半生的回忆与思考,以及关于亲情和生死的深切感悟。有痛苦、迷茫与绝望,更有拼搏、无畏与希望,看见了波折四起,也看见了绝地反击。

2024-02-05 11:06:13 1740 1

原创 预备知识-typedef用法

把int形变量命名为Z;int sid;char sex;}* PST,ST;ST代表struct Student,PST代表struct Student*等价于 ST st;

2024-02-04 22:10:11 280 1

原创 《病毒》读后

蔡骏说“什么是恐怖?恐怖其实并不来自于我们眼睛所能看到的,耳朵所能听到的,恐怖的根源在于我们自身的心灵。每个人的心中都压抑着恐惧感,比如怕黑,怕各种怪异的声音,这源于人类的本能。以主人公周围的人莫名相继自杀,引领主人公探索其中的秘密,具体描述的地点,一定的历史背景给我一种写实的感觉,最后主人公帮助阿鲁特氏皇后找到头颅并与其孕育了生命为结局。读完这本书并没有很大的感触,但是作者的写作手法感觉很有水平,吸引着我一口气读完。

2024-02-03 20:51:40 184 1

原创 预备知识-malloc动态分布内存

当数组被生命时,必须在编译时知道它的长度。动态内存分配允许程序为一个长度在运行时才知道的数组分配内存空间。

2024-02-03 16:39:16 195 1

原创 预备知识-结构体

为了表示一些复杂的数据,普通的基本类型变量无法表示。根据实际需要自己定义的数据类型。五、结构体变量和结构体指针变量作为函数传参问题。结构体不能加减乘除,可以相互复制。一、为什么出现结构体。

2024-02-02 20:19:30 190

原创 预备知识-指针

指针:指针就是地址,地址就是指针。指针变量是存放内存单元地址的变量。指针的本质是一个操作受限的非负整数。p是个变量名字,p变量只能储存int型变量的地址。地址:内存单元的编号。从零开始的非负整数。

2024-02-02 19:28:01 167

原创 指针的学习

利用指针的属性,更改地址。指针———交换两个数。

2024-02-01 22:44:16 136 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除