自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ll_R_lL的博客

我在学啦!

  • 博客(139)
  • 收藏
  • 关注

原创 基于顺序表的排序

基于顺序表的排序。

2024-06-20 00:00:00 403

原创 字符串及其应用

编写程序实现字符串的基本运算:(1) 求串的长度、两串连接、串比较、子串匹配;(2) 用库函数直接实现上一步的字符申操作。

2024-06-14 14:06:02 283

原创 基于顺序表与链表的顺序查找(顺序表的折半查找)

基于任意一个顺序表、链表,实现顺序查找算法; 实现折半查找算法,并思考折半查找算法的适用场景;

2024-06-14 14:02:59 328

原创 二叉树及其遍历

(1)通过先序遍历序列ABD#G###CE#F##构造二叉链表方式存储的二叉树 (为了简化运算,data类型可以是字符型);(2) 遍历二叉树,输出先序遍历的序列;(3) 遍历二叉树,输出中序遍历的序列;(4) 根据输出的先序、中序序列,画出二叉树的结构;

2024-06-14 14:02:39 350

原创 队列及其应用

请设计一个简单的模拟银行排队系统,要求程序具有以下4项菜单:1.取号。选择该菜单后,为客户产生一个排队号。2.叫号。选择该菜单后,显示可服务的客户排队号。3.查看队伍。从队首到队尾列出所有排队客户的排队号。4.退出系统。

2024-06-06 00:00:00 214

原创 学生信息管理系统C++

运用C++语言描述学生类,每一个类应包含数据成员和成员函数。学生的信息包括学号、姓名、性别、班级、高数成绩和英语成绩。注重面向对象程序设计理论知识的理解与实际的动手编程能力,要求学生设计具有继承与派生以及多态性的类,理解面向对象程序设计的核心的概念。

2024-05-31 13:56:19 2027

原创 堆栈的简单应用

利用栈后进先出的特点,将单链表中的结点从链表头开始依次压栈,然后再依次出栈,采用尾插法重新生成单链表

2024-05-31 13:37:20 135

原创 链表的简单应用

编写完整程序LinkList.c或LinkList.cpp实现链表的初始化、查找、插入、删除、遍历等操作。

2024-05-30 05:00:00 306

原创 顺序表及其应用

掌握顺序表的初始化,初始化、查找、插入、删除、遍历、查看实际长度等操作。

2024-05-25 07:00:00 307

原创 类型转换——C++

在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。在C语言中:整型之间的转换:大转小——截断;小转大——提升整型与浮点之间的转换:补位意义相近的类型:例如浮点和整型,因为它们互相之间都是用来表示数据的大小缺陷:转换的可视性比较差,所有的转换形式都是以一种相同形式书写,难以跟踪错误的转换问题:调用的时候//没问题//会死循环。

2023-04-13 21:11:05 882 26

原创 特殊类的设计——C++

比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息,这种方式简化了在复杂环境下的配置管理。如果单例对象构造十分耗时或者占用很多资源,比如加载插件啊, 初始化网络连接啊,读取文件啊等等,而有可能该对象程序运行时不会用到,那么也要在程序一开始就进行初始化,就会导致程序启动时非常的缓慢。仗时都是人拼人的对砍。后来春秋战国时期,七国之间经常打仗,就发现打仗也是有套路的,后来孙子就总结出了《孙子兵法》。

2023-02-07 15:45:15 972 25

原创 智能指针——C++

什么是内存泄漏内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。// 1.内存申请了忘记释放 int * p1 =(int *) malloc(sizeof(int));

2023-02-06 20:34:46 1191 15

原创 Linux——进程间通信

之前写的代码都是单进程的。是无法使用并发能力,并且无法实现多进程协同传输数据,同步执行流,消息通知等进程间通信不是目的,而是一种手段。进程间通信的技术背景进程是具有独立性的。虚拟地址空间+页表。保证进程运行的独立性(进程内核数据结构+进程的代码和数据)通信成本比较高。如何理解进程间通信?进程运行具有独立性!——进程想通信,难度比较大——进程间通信的本质:需要中间媒介,先让不同的进程看到同一份资源(内存空间)所谓的进程看到同一块“内存”,属于哪一个进程?

2023-01-24 14:55:08 3235 18

原创 笔试强训48天——day30

A 非常频繁的换页活动B 非常高的CPU执行活动C 一个极长的执行进程D 一个极大的虚拟内存正确答案:A内存抖动:内存页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动。抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调出。

2023-01-18 21:25:56 1248

原创 笔试强训48天——day29

A 200B =200D 都有可能正确答案:B1.如果两个线程并发的执行,线程A执行完毕,线程B执行,则最终的值为2002.如果两个线程并行的执行,有可能就会导致程序结果的二义性,则最终的结果值有可能是小于200。

2023-01-18 21:22:24 889 2

原创 笔试强训48天——day28

B.多线程程序为了减少线程IO的时间,可以把线程使用的数据提前缓存起来,提高程序的运行效率C选项:尺寸较小的数据可以放到缓存当中,因为比较小,不会吃掉缓存的空间。A选项:访问的概率相等,且独立,就失去了缓存的意义,因为无法区分到底缓存什么数据,能够提高程序的运行效率。缓存本质上是将在磁盘的数据提前缓存在内存当中,从而减少程序访问获取数据时的IO操作次数缓存━般会将高频访问的数据,提前读到内存当中缓存起来。数学问题:总任务单位是1,A的写工作效率是1/10,B的写工作效率是1/6,C的读工作效率是1/15。

2023-01-18 21:17:34 1732

原创 笔试强训48天——day27

装入程序是,值将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。2.计算进位的值:与按位与的值,再左移一位一样(按位与:两个全为1就是1,有0就是0)(num1&num2)

2023-01-18 19:49:11 846

原创 笔试强训48天——day26

有三阶的时候可以有 f(3) =1+f(2)+f(1)=4;+f(1) (第一个1是跳n阶只有一种方法)依次类推,得到类推公式有n阶时:f(n)=2^(n-1)当打开一个文件时,操作系统会创建一个文件控制块,并返回一个文件描述符给程序员,所以首次打开一个文件的时候,是文件控制块读入到内存中。单处理器——单个cpu——即使有再多的进程都是并发的去运行的——在同一时刻,只有一个进程可以拥有cpu资源。每组数据包含两个整数n (1≤n≤2^128) 和r (1≤r≤2^128),分别代表喵的身长和碗的半径。

2023-01-14 21:35:45 403 1

原创 C++——异常

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了// 服务器开发中通常使用的异常继承体系 class Exception {public :return _id;// 错误信息 int _id;// 错误码 };

2023-01-06 22:52:00 779 23

原创 C++11

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中。

2022-12-30 16:26:28 919 19

原创 C++——哈希

unordered_map是存储键值对的关联式容器,其允许通过keys快速的索引到与其对应的value。在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。在内部,unordered_map没有对按照任何特定的顺序排序, 为了能在常数范围内找到key所对应的value,unordered_map将相同哈希值的键值对放在相同的桶中。

2022-12-23 20:59:39 1384 26

原创 C++——哈希练习题

输出结果中的每个元素一定是 唯一 的。A:依次读取文件A中的query,i = Hash(query)%1000,这个query就进去Ai小文件。B:依次读取文件B中的query,i = Hash(query)%1000,这个query就进去Bi小文件。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]输入:nums = [5,1,5,2,5,3,5,4]输入:nums = [2,1,2,5,3,2]

2022-12-23 20:32:49 698 1

原创 笔试强训48天——day25

表的规则是:n对应的值是矩阵X的n次方的左上角,如果这个数不足4位则用0填充,如果大于4位的则只输出最后4位。可重入函数可认为是可以被中断的函数,自动变量定义的时候才被创建,函数返回是,系统收回空间,它是局部作用域变量,不需要互斥量,可重入函数对全局变量才需要互斥量保护。再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。

2022-12-13 23:00:22 1129

原创 笔试强训48天——day24

A O(n2)、O(n2)、O(nlog2n)B O(nlog2n)、、O(n^2)、O(nlog2n)C O(n)、O(n2)、O(n2)D O(nlog2n)、O(n2)、O(n2)正确答案:A A 标识表结点中首结点的位置B 算法实现上的方便C 使单链表至少有一个结点D 说明单链表是线性表的链式存储实现正确答案:BA 遍历链表B 链表深拷贝C 链表反转D 单链表转变为循环链表正确答案:D A 3,2,4,1,1;(^(+-B 3,2,8;(^-C 3,2,4,2,2;(^(-

2022-12-06 23:10:42 603

原创 笔试强训48天——day23

正确答案:C A各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C 进行插入与删除时,不需要移动表中的元素D 以上说法均不正确正确答案:C A 逻辑上相邻的结点物理上不必邻接B 插进、删除运算操纵方便,不必移动结点C 所需存储空间比线性表节省D 无需事先估计存储空间的大小正确答案:C A h->next=s;B s->next=h;C s->next=h;h->next=s;D s->next=h->

2022-12-05 23:41:18 912

原创 笔试强训48天——day22

A O(1)B O(N)C O(logN)D O(N*logN)正确答案:B A p->nextNULLB p->nexthC p->next->nexthD p->data-1正确答案:B A p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;B p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;C q->Rlink=p;q->Llink=p->Llink;p->Llink

2022-12-04 22:13:45 608 1

原创 笔试强训48天——day21

例如有6张牌,最开始牌的序列是1,2,3,4,5,6。右手拿着4,5,6。在洗牌过程中按顺序放下了6,3,5,2,4,1。把这六张牌再次合成一组牌之后,我们按照从上往下的顺序看这组牌,就变成了序列1,4,2,5,3,6。现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。

2022-11-29 15:01:07 1048

原创 笔试强训48天——day20

A 3B 4C 5D 6正确答案:A入栈顺序:A、B、C、D、E、F出栈顺序:B、D、C、F、E、A先入AB出B,再入CD(此时栈中含有数据:ACD)出DC,再入EF(此时栈中含有数据:AEF)出FEA最多也只用了三个。

2022-11-28 17:16:07 509

原创 map、set(底层结构)——C++

高度平衡二叉搜索树,是以人名命名的一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树:如果一棵二叉搜索树是的,它就是AVL树。如果它有n个结点,其高度可保持在O(log2n)O(log_2 n)O(log2​n),搜索时间复杂度O(log2nlog_2 nlog2​n)平衡因子需要三叉链但是旋转的时候也会变复杂 t AVL树就是在二叉搜索树的基础上引入了平衡因子,因此AVL树也可以看成是二叉搜索树。那么AVL树的插入过程可以分为两步: 原则: 如果在一棵原本是平衡的AVL树中插入一个新节点

2022-11-16 21:45:09 2797 13

原创 map&set——C++

set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。set在底层是用二叉搜索树(红黑树)实现的。

2022-11-11 22:54:54 523 1

原创 笔试强训48天——day19

二叉树的性质:对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为 n2,则有 n0=n2 +1。输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1

2022-11-10 22:34:34 1468 1

原创 基础IO(下)——Linux

根据文件系统在整个分区SuperBlock找到目录所对应的分区与块组——确定文件存储的块——去inodeBitmap里遍历位图,找到0的比特位置为1,同时拿到了一个inode号(遍历的时候做一个计数器不断累加)——拿到了inode编号——在inodeTable里把属性写进去(编号,文件权限,拥有者所属组,时间,大小……——block大小——磁盘:块设备。找到文件:inode编号——分区特定的bg——inode——属性——内容。目录——inodetable——datablock——文件名:inode。

2022-11-07 21:28:33 965 9

原创 基础IO(中)——Linux

之前所谈的缓冲区,绝对不是由os提供的,因为如果是OS提供的,那么我们上面的代码,现象应该是一样的。struct FILE:结构体——1.内部封装了fd 2. 还包含了该文件fd对应的语言层的缓冲区结构。上面的测试,并不影响系统接口,如果有所谓的缓冲区,那我们之前所谈的缓冲区应该是由谁维护呢?printf——1——stdout,数据会暂存在stdout的缓冲区中。fd——1:数据在缓冲区中,但是对应的fd先关了,数据便无法刷新了!如果是常规的文本内容,我们建议进行cout,stdout打印。

2022-11-07 20:12:34 289 4

原创 基础IO(上)——Linux

makefile先删掉之前的log.txt,再运行程序 命令行参数: 处理:

2022-11-07 19:45:52 575 6

原创 二叉树进阶oj题

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。递归调用太深,容易奔溃。

2022-11-02 21:50:44 628 15

原创 二叉搜索树——C++

比如英汉词典就是英文与中文的对应关系,通过英文可以快速找到与其对应的中文,英文单词与其对应的中文就构成一种。再比如统计单词次数,统计成功后,给定单词就可快速找到其出现的次数,单词与其出现次数就是就构成一种键值对。情况d:在它的右子树中寻找中序下的第一个结点(关键码最小),用它的值填补到被删除节点中,再来处理该结点的删除问题–情况c:删除该结点且使被删除节点的双亲结点指向被删除结点的右孩子结点–直接删除。2.统计水果出现的次数——计数器只适用于整型。

2022-10-31 22:04:18 635 23

原创 笔试强训48天——day17

以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。A 封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对。D 覆盖是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。C 和类的静态成员函数与非类的成员函数相比,虚函数的效率较低。输出输入字符串中含有该字符的个数。

2022-10-31 17:09:30 729 2

原创 笔试强训48天——day18

增加成员可能会导致扩容——开一块新空间然后将旧空间的内容拷贝下来,将指针指向新空间,释放旧空间——会导致原来存储的位置发生改变。有一种兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子。返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。例子:假设一只兔子第3个月出生,那么它第5个月开始会每个月生一只兔子。一月的时候有一只兔子,假如兔子都不死,问第n个月的兔子总数为多少?

2022-10-31 17:01:22 475

原创 笔试强训48天——day15

A 公有成员和私有成员B 私有成员和保护成员C 公有成员和保护成员D 私有成员,保护成员和公有成员正确答案:C私有:类里类外都不能访问。

2022-10-30 16:21:13 979 2

原创 笔试强训48天——day14

A 构造函数B 析构函数C 内联成员函数D 静态成员函数正确答案:B。

2022-10-30 16:14:21 550

空空如也

空空如也

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

TA关注的人

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