- 博客(51)
- 收藏
- 关注
原创 LRU缓存
LRU缓存可以通过辅以实现:双向链表按照被使用的顺序存储缓存中的键值对,靠近头部是最近使用的,靠近尾部是最久使用的;哈希表通过缓存数据的键映射到其在双向链表中的位置。【即:首先使用哈希表定位,找出缓存项在双向链表中的位置;然后将其移动到双向链表的头部】
2023-09-25 08:50:39
277
原创 【代码随想录】【链表】203. 移除链表元素
链表的定义。删除节点时,C++里要手动释放节点内存,其他语言如Java、Python,有自己的内存回收机制,不需要手动释放。设置虚拟头节点方便操作。
2022-09-27 20:58:56
548
原创 【浙大版《C语言程序设计(第3版)》】习题6-3 使用函数输出指定范围内的完数【C语言】
本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。函数接口定义:int factorsum( int number );void PrintPN( int m, int n );其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m,n]内每个完数的因子累加形式的分解式,.
2021-03-19 09:01:49
307
原创 【基础编程题目集】6-7 统计某类完全平方数 【C语言】
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h>int IsTheNumber ( const int N );int main(){ int
2021-03-18 13:51:57
303
原创 【学习笔记】继承和多态
继承是多态的前提,如果没有继承,就没有多态。父类又称为基类、超类,子类又称为派生类。“师父会多少武功,大徒弟也都会,小徒弟也都会。”继承主要解决的问题:共性抽取。继承关系当中的特点:1、子类可以拥有父类的“内容”2、子类还可以拥有自己专有的内容在继承关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。例如父类是员工,子类是讲师,那么“讲师就是一个员工”。关系:is-a。...
2021-02-17 19:43:31
192
原创 【学习笔记】static静态
如图所示,对于同班同学来说,姓名、年龄、学号,每个对象都需要有自己独立的数据;但是对于所在教室而言,多个对象共享同一份数据还可节省空间,便于操作。对于这样的数据,可以用static关键字,那么这样的内容不再属于对象自己,而是属于类的,即:凡是本类的对象,都共享同一份。静态变量和静态方法静态变量:如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类。多个对象共享同一份数据。静态方法:一旦使用static修饰成员方法,那么这就成为了静态方法。静态方法不属于..
2021-02-04 09:52:57
330
3
原创 【C语言】1002 写出这个数 :读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
题目:读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu代码实现:#include<stdio.h>#include...
2021-01-22 11:43:51
979
1
原创 【学习笔记】面向对象和封装
一、面向对象思想概述面向对象不好理解,不如我们来举个例子,有一家餐馆,如果它是面向大众的,那么它可能售一些平价菜;如果是面向高端人群,那么可能售价格相对较高的菜品。因此,面向谁可以理解为看重谁、关注谁,在编程中,有两种主流思想:面向过程和面向对象。面向过程:当需要实现一个功能时,每一个具体的步骤都要亲力亲为,详细处理每一个细节。面向对象:当需要实现一个功能时,不关心具体的步骤,而是找一个已经具有该功能的人来帮助。下面通过一个例子来理解:(要求打印格式为:[10, 20, 30, 40, 50
2021-01-20 20:22:53
180
原创 4292——大整数的输入输出
Description输入两个 long long 范围内的整数,输出他们的和。Input两个long long 范围内的整数。Output输出的两个大整数的和,保证结果在 long long 范围内。SampleInput 2222222222 3333333333Output 5555555555代码实现:#include<stdio.h>int main(){ long long a,b; scanf("%l...
2020-08-07 22:43:07
483
原创 4291——实数的输出和占位
Description输入一个实数,请你按如下要求输出:第一行按双精度默认输出,第二行双精度数输出共占 10 位,其中 3 位小数,右对齐,左补空格并在两端添加星号包裹,第三行双精度数输出共占 10 位,其中 3 位小数,左对齐,右补空格并在两端添加星号包裹。Input一个double范围内的正实数 a 。Output共三行,按题目描述输出。SampleInput 123.56789Output 123.567890 * 123...
2020-08-07 22:37:02
1157
原创 图——一种比线性表和树更复杂的数据结构
一、图的定义图G由两个集合V和E组成,记为G=(V,E),其中V是顶点的有穷非空集合,E是边的有穷集合。ADT Graph{ 数据对象V:一个集合,该集合中所有元素具有相同的特性。 数据关系R:R={VR} VR={<x,y>|P(x,y)∧(x,y∈V)}}二、图的基本术语(1)子图(2)有向图、无向图(3)邻接点(4)完全图:有n(n-1)/2条边的无向图为无向完全图;有n(n-1)条边的有向图为有向完全...
2020-06-01 22:23:28
460
原创 非线性数据结构——树与二叉树的相关内容
一、定义树(Tree)是n(n≥0)个结点的有限集T,其中:有且仅有一个特定的结点,称为树的根(Root);当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(SubTree)。二、特点(1)树中至少有一个结点——根(2)树中各子树是互不相交的集合三、基本术语结点(Node)——表示树中的元素,包括数据项及若干指向其子树的分支;结点的度(Degree)——结点拥有的子树数;叶子(Leaf)——度为0的结点;
2020-05-29 17:14:16
368
原创 排序算法:直接插入排序,折半插入排序,冒泡排序,快速排序,简单选择排序
一、直接插入排序基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。算法步骤:①设待排序的记录存放在数组r[1...n]中,r[1]是一个有序序列;②循环n-1次,每次使用顺序查找法,查找r[i](i=2...n)在已排好序的序列r[1...i-1]中的插入位置,然后将r[i]插入表长为i-1的有序序列r[1...i-1],直到r[n]插入表长为n-1的有序序列r[1...n-1],最后得到一个表长为n的有序序列。void insertsort(nod
2020-05-24 15:21:53
2900
1
原创 查找算法:顺序查找,折半查找及递归算法
一、顺序查找算法思想:从表的一端开始,依次将记录的关键字和给定值进行比较,若某个记录的关键字和给定的值相等,则查找成功;反之,若扫描整个表后,仍未找到关键字和给定值相等的记录,则查找失败。int seqsearch(seqlist r,int n,keytype k)//顺序查找算法{ /* int i; for(i=1;i<=n;i++) if(r[i].key==k) return i; return 0; */ //改进:设置监视哨的顺序查找 int i;
2020-05-24 11:26:09
2116
原创 Oracle整理:SQL基本操作(一)
一、sqlplus的使用启动相关服务--以管理员身份登录sqlplus--解锁用户--切换到已解锁用户管理--服务--(oracleserviceORCL,oracle...tnslistener)sys/Oracle11 as sysdbaalter user scott identified by tiger account unlock;connect username/password [as sysdba];connect scott/tiger查看当前用户:show
2020-05-21 11:34:48
372
原创 内容受限的线性表:串的相关内容
一、串的概念定义:串是由零个或者多个字符组成的有序序列。一般记为S=“a1a2...an”(n>=0)。当n=0时称为空串(注意与空格串区分)。串中任意个连续的字符组成的子序列称为该串的子串。串与线性表的区别:(1)串的数据对象限定为字符集;(英文字符——ASCII,中英文——Unicode)(2)串的基本操作通常以子串为操作对象,而线性表以单个元素作为操作对象。二、...
2020-05-07 08:43:45
960
原创 数组的实际应用练习:多维数组的存储和稀疏矩阵的存储
1、创建两个对称矩阵,求两个对称矩阵的和。//创建对称矩阵;//这里用的a[5][5]做的测试,需要注意二维数组传参问题,第二维空间需指定。void createArry(int a[][5],int m,int n){ for(int i=0;i<m;i++) for(int j=0;j<n;j++) { if(j>i) scanf("%d"...
2020-04-20 15:41:21
446
原创 操作受限的线性表:栈和队列的相关内容
一、栈的基本概念1、栈的定义:限定仅在表尾进行插入或删除操作的线性表,表尾—栈顶,表头—栈底,(如图)不含元素的空表称空栈。2、栈的特点:先进后出(FILO)或后进先出(LIFO) 二、栈的表示和实现1、顺序栈定义:用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。顺序栈的存储表示#define MAXNUM 50 //定义栈中元素的最...
2020-03-27 19:29:56
491
原创 VMware中解决Ubuntu不能连接网络问题
1、保证自己的电脑能正常连接网络2、打开关于VMware的所有服务(一般情况服务设置的是手动启动,需要自己打开)如图:3、对VMware虚拟机进行网络设置:右击ubuntn选择设置4、选择网络适配器选项,将连接方式设置成NAT模式,并进行保存5、将本机网络进行共享,并保存6、打开VMware进入ubuntu系统,网络已正常连接并能正常上网...
2020-03-17 14:27:40
690
原创 Linux常用命令整理
1、ls命令ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)和查看目录信息等。常用参数搭配: ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ...
2020-03-17 13:53:57
142
原创 线性表的链式表示:单链表的定义及基本操作(C语言)
一、定义线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素(即逻辑上相邻的数据元素在物理上不一定相邻)。特点是顺序存取,查找需从第一个结点出发,逐个往下搜索;但插入和删除操作不需移动大量元素只需修改相关结点的指针域,空间分配灵活。通常用头指针来标识一个单链表,此外,为了操作方便,在单链表第一个结点之前附加一个结点,称为头结点(如图)。单链表的结点类...
2020-03-17 10:05:22
775
原创 【问题解决】java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized
java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' confi...
2020-03-14 18:55:43
3934
1
原创 反射:框架设计的灵魂
反射这个概念之前听说过,但却是第一次真正接触,记录下学习过程。框架:可以理解为半成品软件。我们可以在框架的基础上进行软件开发,简化编码。反射概念:将类的各个组成部分封装为其他的对象,这就是反射机制这样的概念有些抽象,不妨先了解下java代码在计算机中经历的三个阶段:source源代码阶段Class类对象阶段Runtime运行时阶段 好处:1...
2020-03-10 16:35:49
150
原创 线性表的顺序表示:顺序表的定义及基本操作
一、定义顺序表指用顺序存储的方式实现的线性表,实现方式分为静态分配和动态分配。特点是能随机访问,存储密度高(即逻辑上相邻的两个元素在物理位置上也相邻);但插入和删除操作需要移动大量元素且拓展容量不方便。可通过下面两段代码理解两种实现方式,本文主要运用动态分配方式,静态分配方式数组大小和空间事先固定,空间占满再加入数据将会产生溢出。注意:动态分配不是链式存储,同样属于顺序存储结构,只...
2020-03-08 19:52:57
1158
原创 基于bs4库的HTML内容遍历
一、HTML基本格式本文关于HTML文档树(或者标签树)的遍历,那么HTML的基本格式是什么呢?(从别处找的两张图) 按照遍历的方向来可划分为:上行遍历、下行遍历和平行遍历,html内容中的标签都是有所属关系的(该标签包含那些标签,该标签属于哪个标签)。图中红色箭头表示下行遍历,蓝色箭头表示上行遍历,黄色箭头...
2020-03-06 22:11:11
355
原创 网页信息解析方法(一):利用第三方库BeautifulSoup库来处理
通过上一篇requests库的介绍Python爬虫基础—requests库,我们了解了使用Python中的第三方库requests库来获取url页面中的信息,那么获取成功后便需要对网页信息进行解析了,即筛选页面中我们需要的信息、数据并提取出来。而爬取页面的总流程可以描述为:获取页面—>解析页面,筛选和提取目标数据信息—>保存数据信息到本地。本文将对第二个环节——解析网页,筛选和提取目标...
2020-03-06 20:42:53
1284
原创 数据结构预备实验(C语言):学生信息管理
实验目的1、复习C语言中结构体类型的定义方法,掌握数据元素类型的定义方法;2、巩固结构体变量成员的“.”引用和“->”引用;3、掌握C语言函数的声明、定义和调用。实验内容学生信息管理:某年级共有n个学生,每个学生的信息构成一个记录,如下表所示,学生的学号作为关键字(key)。这n个记录构成了一个长度为n的线性表。现要求完成如下操作: 学号 ...
2020-03-05 14:21:05
2051
原创 Python爬虫基础—requests库
之前尝试接触爬虫,比较零散也比较陌生,最近整理并再学习下。从爬虫必备库requests开始,requests库可以说是中小规模爬虫的神器,简单来说requests库主要是用来向服务器提交某些所指定url申请 并获取网页界面内容(网页内容的源代码)。如若想详细了解,可以看requests库的官方文档。requests库的安装(基于Windows操作系统,保证网络畅通) ...
2020-02-19 20:19:48
361
原创 Python基础—异常和面向对象
期末笔记后期整理,如有问题,请多多指教。一、异常1、所有异常类都是Exception的子类2、常见的异常 ①NameError:访问未声明的变量 ②ZeroDivisionError:除数为0 ③SyntaxError(编译时发生) ④IndexError:序列中不存在的索引 ⑤KeyError:字典中不存在的键访问值时...
2020-02-05 21:41:49
589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人