自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019 蓝桥杯 A

#include <cstdio>#include <string>#include<list>#include<cstring>#include<iostream>#include<cmath>#define M 1000000using namespace std;int main(){ double ans=0; int flag=0; for(int i=1;i<=1000000;

2021-03-03 18:47:22 137 1

原创 利用栈将递归转化为非递归

1)设置一个工作栈存放递归工作记录(包括实参、 返回地址及局部变量等)。(2)进入非递归调用入口(即被调用程序开始处) 将调用程序传来的实在参数和返回地址入 栈(递归程序不可以作为主程序,因而可认为初始是被某个调用程序调用。(3)进入递归调用入口:当不满足递归结束条件时,逐层递归,将实参、 返回地址及局部变 量入栈,这一过程可用循环语句来实现一模拟递归分解的过程。(4)递归结束条件满足,将到达递归出口的给定常数作为当前的函数值。(5)返回处理:在栈不空的情况下,反复退出栈顶记录,根据记录中的返回地址

2021-03-03 18:39:41 679 1

原创 01背包

01背包题目的雏形是:有N件物品和一个容量为V的背包。第i件物品的体积是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。从这个题目中可以看出,01背包的特点就是:每种物品仅有一件,可以选择放或不放。for (i = 1; i <= n; i++) for (j = v; j >= c[i]; j--)//在这里,背包放入物品后,容量不断的减少,直到再也放不进了 f[i][j] = max(f[i - 1][j], f[i - 1][j - c[i]

2021-03-03 18:36:35 86 1

原创 2-6

线索二叉树在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构,使每个结点都有了唯一前驱和后继(第一个结点无前驱,最后一个结点无后继)。对于二叉树的一个结点,查找其左右子女是方便的,其前驱后继只有在遍历中得到。为了容易找到前驱和后继,有两种方法。一是在结点结构中增加向前和向后的指针,这种方法增加了存储开销,不可取;二是利用二叉树的空链指针。优

2021-02-07 22:48:28 72

原创 2-5

遍历二叉树遍历方案二叉树的前序遍历二叉树的前序遍历从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:⑴访问结点本身(N),⑵遍历该结点的左子树(L),⑶遍历该结点的右子树(R)。以上三种操作有六种执行次序:NLR、LNR、LRN、NRL、RNL、RLN。注意:前三种次序与后三种次序对称,故只讨论先左后右的前三种次序。遍历命名根据访问结点操作发生位置命名:① NLR:前序遍历(Preorder Tra

2021-02-07 22:45:14 148

原创 2-4

二叉树存储结构一、顺序存储优点读取某个指定的节zhi点的时候效率比较高daoO(0)缺点:会浪费空间(在非zhuan完全二叉树shu的时候)二、链式存储优点:读取某个指定节点的时候效率偏低O(nlogn)缺点:相对二叉树比较大的时候浪费空间较少二叉树的顺序存储,寻找后代节点和祖先节点都非常方便,但对于普通的二叉树,顺序存储浪费大量的存储空间,同样也不利于节点的插入和删除。因此顺序存储一般用于存储完全二叉树。链式存储相对顺序存储节省存储空间,插入删除节点时只需修改指针,但寻找指定节点时很不方便

2021-02-07 22:43:26 52

原创 2-3

树的基本术语①结点:包含一个数据元素及若干指向子树分支的信息 [5] 。②结点的度:一个结点拥有子树的数目称为结点的度 [5] 。③叶子结点:也称为终端结点,没有子树的结点或者度为零的结点 [5] 。④分支结点:也称为非终端结点,度不为零的结点称为非终端结点 [5] 。⑤树的度:树中所有结点的度的最大值 [5] 。⑥结点的层次:从根结点开始,假设根结点为第1层,根结点的子节点为第2层,依此类推,如果某一个结点位于第L层,则其子节点位于第L+1层 [5] 。⑦树的深度:也称为树的高度

2021-02-07 22:34:34 132

原创 2--2

二叉树二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分 。二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点特殊1、满二叉树:如果一棵二叉树只有度为0的结点和度为2的结

2021-02-07 22:33:57 89

原创 2-1

**树** 树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树种类无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;二叉树:每个节点最多含有两个

2021-02-07 22:30:48 59

原创 广义表

广义表是一种非连续性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。广义表是n(n≥0)个元素a1,a2,…,ai,…,an的有限序列。其中:①ai–或者是原子或者是一个广义表。②广义表通常记作:Ls=( a1,a2,…,ai,…,an)。③Ls是广义表的名字,n为它的长度。④若ai是广义表,则称它为Ls的子表。注意:①广义表通常用圆括号括起来,用逗号分隔其中的元素。②为了区分原子和广义表,书写时用大写字母表示广义表,用小写字母表示原子。③若广

2021-01-31 17:19:34 79

原创 串的存储结构

串存储结构的具体实现存储一个字符串,数据结构包含以下 3 种具体存储结构:定长顺序存储:实际上就是用普通数组(又称静态数组)存储。例如 C 语言使用普通数据存储字符串的代码为 char a[20] = “data.biancheng.net”;堆分配存储:用动态数组存储字符串;块链存储:用链表存储字符串;...

2021-01-31 16:58:48 151

原创 串的定义

串:是零个或多个字符组成的有限序列。一般记为: S=‘a1a2…an’ (n≥0)。其中S为串名,用单引号括起来的为串值, n为串的长度。子串:串中任意个连续的字符组成的子序列称为该串的子串。主串:包含子串的串相应地称为主串。子串在主串中的位置通常将字符在串中的序号称为该字符在串中的位置。子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。空格串:由一个或多个称为空格的特殊字符组成的串,其长度为串中空格字符的个数。空串:无任何字符组成的串,其串长度为零。串相等:只有当两个串的长度相等,并

2021-01-31 16:47:24 835

原创 2021-01-23

今日学习笔记递归算法特性:①递归算法是一种分而治之、把复杂问题分解为简单问题的求解问题方法, 对求解某些复杂问题,递归算法的分析方法是有效的。②递归算法的效率较低。 为此,在求解某些问题时,希望用递归算法分析问题,用非递归算法求解具体问 题。消除递归的原因:其一,有利于提高算法时空性能,因为递归执行时需要系统提供隐式栈实现 递归,效率较低。其二,无应用递归语句的语言设施环境条件.其三,递归算法是一次执行完,中间过程对用户不可见,这在处理有些问题 时不合适,也存在一个把递归算法转化为非递归算法的

2021-01-23 22:23:57 81

原创 2021-01-22

栈的表示及操作实现关于栈的基本操作除了入栈和出栈,还有栈的初始化、栈空的判定以及取栈顶元素等,分别对应线性表中的插入、删除、初始化、查找和取值操作。和线性表类似,栈也有两种存储表示方法,分别为顺序栈和链栈。顺序栈顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置,另设base指针指示栈底元素在顺序栈中的位置。链栈链栈是指采用链式存储结构实现的栈。通常链栈用单链表表示...

2021-01-22 23:30:42 51

原创 1-21

题目来源 蓝桥杯给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个 4 位整数(提示:答案的千位不为 0) ,在提交答案时只填写这个整数,填写多余的内容将无法得分。题解因为加法高位不会对低位产生影响,因此取数列的第20190324项的最后4位数字只需要维护好后4位数即可。这题数据规模不大,直接模拟即可。要求时间则需使用矩

2021-01-22 23:28:30 90

原创 1-20

题目来源 蓝桥杯给定一个单词,请使用凯撒密码将这个单词加密。  凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。  例如,lanqiao会变成odqtldr。输入格式  输入一行,包含一个单词,单词中只包含小写英文字母。输出格式  输出一行,表示加密后的密文。#include<stdio.h>int main(){ char ch; while(scanf(

2021-01-22 23:24:43 59

原创 1-19

栈和队列的定义和特点栈(stack)是一个特殊的线性表,是限定仅在一端(通常是表尾)进行插入和删除操作的线性表队列(queue)是一种先进先出(FIFO)的线性表。在表一端插入(表尾),在另一端(表头)删除逻辑结构:与同线性表相同,仍为一对一关系存储结构:顺序队或链队,以循环顺序队列更常见栈与递归递归的定义若一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归的若一个过程直接地或间接地调用自己,则称这个过程是递归的过程递归问题——分治法对于一个较为复杂的问题,能够分解成几个

2021-01-22 22:43:35 52

原创 1-18

** 题目来源 蓝桥杯 ** 不超过19000的正整数中,与19000互质的数的个数是多少?#include <stdio.h> int Gcd(int m,int n) { int o; while(n>0) { o=m%n; m=n; n=o; } return m; }

2021-01-22 22:17:11 57

原创 2021-01-17

关于反转字符串#include <stdio.h>#include <stdlib.h>#include <string.h> //字符串反向输出 void reverse(char *arr){ int temp, i; int len; len = strlen(arr); //获得字符串的长度 for( i = 0; i < len / 2; i++) { temp = arr[i]; arr[i] = arr[le

2021-01-17 00:03:38 57

原创 学习心得

今日习题牛客网小乐乐与二段数代码演示链接:https://www.nowcoder.com/questionTerminal/2d1c4b3e708548099c75b7818b816775来源:牛客网#include<stdio.h>int main(){ int m=1,x,n,i=0,a[1000],flag=1; while(scanf("%d",&n)!=EOF&&n!=0) {

2021-01-16 00:01:49 76

原创 2021-01-14

今日刷题序列重组矩阵#include#include int main(void){ int m,n; scanf("%d %d", &m,&n); getchar(); int* num = (int *)malloc(sizeof(int)*n*m); for(int i=0;i<m*n;++i)scanf("%d", (num+i)); for(int i=0;i&

2021-01-14 22:37:43 96

原创 凯撒加密算法

#include <stdio.h>#include <string.h>int main(){ char passwd[100],encrypted[100]; int i,j,k,t,move; while(1) { printf("Enter message to be encrypted:"); gets(passwd); printf("Enter shift amount(1-25):

2021-01-14 00:00:58 341

原创 学习心得

最优数对类型题题目大意:按递增的顺序告诉你N个正整数和一个实数P,要求求出求出该数列中的比例最接近P的两个数(保证绝对没有两个数使得其比值为P)。解题思路:定义两个指针i和j,先初始化i=j=1,然后进行如下操作: 当code[j]/code[i]>p时,inc(j); 当code[j]/code[i]<p时,inc(i)。 记录其中产生的最优值即为答案。...

2021-01-11 23:57:40 84

原创 DAY.6

复习冒泡排序心得1.原理:比较两个相邻的元素,将值大的元素交换到右边2.思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。    (1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。    (2)比较第2和第3个数,将小数 放在前面,大数放在后面。    (3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成    (4)在上面一趟比较完成后,最后一个数一定是数组中最大的一个数,所以在比较第二趟的时候

2021-01-10 01:07:46 57

原创 DAY.5

第五天今日无内容,主要预习冬令营内容,刷题,为明天培训做准备

2021-01-08 21:41:15 36

原创 DAY,4

第四天一切都在有序进行每日单词打卡以及今天一鼓作气把程序设计基础剩下的部分都看完了,简直不要太开心今天没往下继续学习新的内容,主要是对前三天学的内容做个总结并且反思自己首先通过复习发现自己所掌握的只是表皮,对于深入的内容还存在漏项的情况其次自己太过急躁,但是掌握知识囫囵吞枣是大忌希望今后节奏可以慢下来,脚踏实地打好地基...

2021-01-08 00:22:32 45

原创 DAY.3

DAY.3老规矩每日单词打卡依旧在复习今日通过自学,掌握了顺序表与链表的优缺点顺序表的优点:(1) 方法简单,各种高级语言中都有数组,容易实现。(2) 不用为表示结点间的逻辑关系而增加额外的存储开销。(3) 顺序表具有按元素序号随机访问的特点。顺序表的缺点:(1) 在顺序表中做插入删除操作时,平均移动大约表中一半的元素,因此对n较大的顺序表效率低。(2) 需要预先分配足够大的存储空间,估计过大,可能会导致顺序表后部大量闲置;预先分配过小,又会造成溢出。链表的优点:(1) 在链表中做插

2021-01-07 00:20:04 47

原创 DAY.2

充实的一天今日内容预习数据结构线性表部分内容复习字符串四级单词50个看书ing有的内容理解很慢,对我来说真的很吃力,希望开窍了就好了每日四级单词打卡配合网课使用效果更佳,不过就是得来回反复听今日份查漏补缺吼吼吼不能喜新厌旧自我总结充实的一天,效率也很不错,对知识的理解方面还需要加强,不过不能泄气,毕竟只要功夫深,铁杵磨成针期待明天~...

2021-01-05 23:57:15 49

原创 第一天

Day.1学习状态:整体较为松散,没有很好利用时间学习强度:中等学习计划:预习数据结构 √复习指针 √刷题 √背四级单词 √*学习内容刷题刷题x2尝试解决书后习题代码ac预习数据结构单词打卡充实的一天 ,希望明天效率更高...

2021-01-04 21:50:05 47

空空如也

空空如也

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

TA关注的人

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