自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构之栈

顺序栈是一种后进先出(LIFO)的数据结构,通过动态数组实现,支持动态扩容和收缩。主要操作包括入栈、出栈、获取栈顶元素和判断栈空,适用于需要快速访问最后存入数据的场合。

2024-05-12 20:17:11 437 2

原创 数据在内存中的存储以及百度笔试题

在内存中可以自定义顺序,但是只有从大到小,或者从小到大最为方便。其中:递增的如11 22 33 44为大端存储递减的如44 33 22 11为小端存储如地址:0x11223344 是十六进制,一位十六进制如1为0001占四个bit空间,11占8个bit空间,所以两个十六进制位占一个字符(8bit)。例如有符号char一个字节8为字符,其中第一位为符号位;无符号unsigned char 是从0-255,有符号是从0-127,-127-(-1)。所以超过127的部分,也等于127。

2024-02-18 20:56:59 965 2

原创 C++基础入门之引用

int a = 0;int &b = a;int c = 2;b = c;//这里不是改变指向,而是将C的值赋给b这里b是a的别名,b = c 不是将b的指向从a变为c,而是将C的值赋给b。这是因为引用的指向不能改变。

2024-02-09 18:01:28 893

原创 C语言函数的栈帧与销毁(面试亮点)

在函数调用之前就将call指令的下一条指令的地址就压栈了,然后再将edp(此时的edp是调用函数的上一条函数如main函数的edp)压栈,这样在pop掉edp时,edp会返回到原edp的位置,由于pop操作,会使esp++,这样esp就会调用call指令的下一条指令的地址,这样就会时函数调用返回,然后返回的值,事先已被寄存器eax临时保存,这样值也会被寄存器带回。在还没有调用函数的时候,就以及将实参的拷贝push压栈到空间里,到调用函数的时候,并没有为形参分配空间,而是使用esp+偏移量,找到实参的拷贝。

2024-02-09 00:41:38 1290

原创 编译器的实用调试技巧

一个bug的故事:有说法认为,世界上第一个bug出现在1944年,当时的第一台通用自动计算机塔克一号诞生。在一次维护过程中,一位名叫格蕾丝·霍普的女性程序员发现并解决了计算机中的一个缺陷,这个缺陷是由于一只蛾子飞入计算机内部造成的。她使用了发夹将蛾子夹出,并在管理日志上记录了这次事件。此后,“Bug”这个词就被用来指代计算机程序中的错误。

2024-02-05 21:37:05 1036

原创 考研/计算机二级数据结构刷题之顺序表

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,你必须仅使用。,返回删除后数组的新长度。的元素,并返回移除后数组的新长度。删除重复出现的元素,使每个元素。

2024-02-03 23:04:09 654

原创 考研C语言操作数以及函数刷题基础刷题

1的补码为:1111 1111 1111 1111 1111 1111 1111 1111。-1除2,不够除,所以整数为0;所以我们需要用无符号整形 unsigned int,让-1的每一位都是有效位。用n&(n-1),这样在二进制可以每次都减少一个1,循环了几次就有几个1。如:输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。^异或操作符的意思是,相同为0,相异为1;每一位都与1做与运算,双1为1。因为,int是4字节,字节8位。4.如果循环到最后,如果i=n-1,那么就是素数。

2024-02-02 16:44:02 1168

原创 基于C语言的趣味游戏之五子棋

在用rand之前要先使用srand随机数种子,为了确保随机数种子的唯一性,我们将随机数种子放在test.c文件的main()函数里,确保随机数种子只被调用一次。先写菜单,然后在主函数里调用,由于这是一个可以重复的游戏所以将do while循环里调用menu函数。由于数组的下标是从0开始到n-1的,但是玩家是不会考虑这些的,所以玩。最后在合法的下标下,将玩家输入的下标位置用 ‘ * ’替换空格。当用户在相应的坐标里输入时,就将对应的空格替换成特定的符号。家的输入的下标,应该在要减一才是棋盘的下标。

2024-01-25 02:47:34 1012

原创 考研C语言刷题基础篇之数组(一)

什么是数组名arr数组名其实是地址,而且是首元素的地址但是有两个特例不是首元素的地址sizeof(arr)这里不是首元素的地址,这里是整个数组的大小&arr,对数组取地址,这里不是对首元素取地址,这里是对数组取地址除了这两个特例以外,其他的情况都是首元素的地址数组是数组同样其实也是指针,因此可以用数组接收,也可以用指针接收下面我们用的数组名arr传参,这里arr是首元素的地址。参数传给//也可以用被下面的调用,但是由于arr是首元素的地址。

2024-01-24 23:25:54 810

原创 C++入门之基础语法

规定:缺省值只能在声明部分给缺省值,不能同时给缺省值,否则会冲突。

2024-01-21 22:41:08 825

原创 考研C语言刷题基础篇之分支循环结构基础(二)

首先,是完成一次n=2时的操作 即(n-1)时操作的操作。在加上一步将蓝色放入第三根柱子的操作最后,是将黑红当一个整体,在完成一次n=2即(n-1)时的操作。

2024-01-21 00:41:52 1251 1

原创 承认自己是猪,否则电脑就要关机。趣味小实验

如果想整蛊自己的好基友,不妨写下面这段程序。

2024-01-17 22:37:59 343

原创 考研C语言刷编程题篇之分支循环结构基础篇(一)

printf("%d\n", sizeof(arr) / sizeof(arr[0]) //求数组的元素个数。每一重置sum:1+1+1*2+1+1*2+1*2*3+1+1*2+1*2*3+1*2*3*4。在有序数组1,2,3,4,5,6,7,8,9,10里查找元素。数组的下标是从0开始的,所以right的值应该是数组长度-1;正常求和,1+1*2+1*2*3......

2024-01-16 23:37:26 690 1

原创 leetcode数据结构与算法刷题(三)

快慢指针,一个走一步,一个走两步。用meet记录下他们相遇的点。利用结论L = N*C - X,设置一个指针指向起点,meet指向相遇的点。他们两同时出发,会在环入口出相遇,输出相遇时的点。

2023-11-21 00:48:17 1324 5

原创 数据结构初阶leetcodeOJ题(二)

(1)注意头插是新结点指向头结点,然后在将新节点设置为头结点。而不是直接将新节点设置为头节点(2)C语言赋值语句,左值是变量,将新节点设置为头结点。这是头结点为cur//方法二while(cur!=NULL)//保存下一个cur = next;

2023-11-19 01:37:55 910 1

原创 栈和队列的初始化,插入,删除,销毁。

特点:顺序表,逻辑地址=物理地址。可以任意访问,访问时间复杂度O(1).。实现分配空 间,当空间不足时,要动态扩容。顺序表在销毁时可以直接free,但链表要一 个个删 除。顺序表:适和访问,不适合插入删除,时间负责度为O(N)。由于栈的特性,只能先进先出,尾插头删,不能任意输出,所以我们只能输出头。(2)栈不能任意打印,栈只能访问栈顶。如果你初始化为-1,那就是先++,在插入。(3)栈只能尾插头删。

2023-11-18 19:06:52 440

原创 考研数据结构单链表的增删改查看这一篇就够了

想用形参pphead改变外部指针phead(实参) ,先将实参的地址&plist,传给实参pphead,这时pphead代表的是plist地址(&plist),*pphead解引用所以*pphead代表是plist,这里是要改变SNode*,所以要node**。*p的意思是:是取p所指向内存的值,取多少大小的值,取决于结构体前的数据类型,如int 取四个字节,char取一个字节。如果要改变外部定义的结构指针SLNode*,要用二级指针SLNode**。

2023-11-11 22:33:57 423 1

原创 考研顺序表的初始化、销毁、打印、封装、增删改查代码看这一篇就够了

2.空了的话,先给capacity赋初值为4,不为空则给空间动态扩容两倍。1.先判满了,是否有效个数等于空间总数,如果等于判空间是否为空。用for循环遍历一遍,如果i的值等于x则返回下标i;// 对数据的管理:增删查改。// 顺序表在pos位置插入x。// 顺序表删除pos位置的值。for循环遍历一遍数组,并打印。

2023-11-07 22:07:57 258 2

原创 考研数据结构线性表看这篇就够了之顺序表(一)

在头文件里定义结构体//定义一个数据类型int size;//有效数据//空间容量}SL;函数声明在头文件.h,定义函数在.c文件。

2023-11-03 20:36:45 233 2

原创 C语言,数据结构指针,结构构体操作符 •,->,*的区别,看这篇就够了

在朋友们学习指针和数据结构这一章的时候,对各种操作符云里雾里。当你看到这么文章之后你就会明白了。

2023-11-03 15:11:06 433

原创 考研时间复杂度和空间复杂度的计算看这一篇就够了

1.时间复杂度是估计,O(n),最坏情况。

2023-10-27 23:53:27 225 6

原创 考研计组第二章(无符号数的加减运算以及溢出判断)

开始之前让我们先回顾一下带符号数的加减运算😎​​。

2023-10-23 16:36:17 2545 6

原创 C语言初阶刷题OJ

请计算表达式“(-8+22)×a-10+c÷2”,其中,a = 40,c = 212。注意: (-8+22)×a-10+c÷2这是我们的算数表达式。机器语言是不能识别哒,如果改为机器能够识别的操作符要把×改为*,÷改为/

2023-10-22 16:16:00 132 6

原创 Leetcode数据结构初阶OJ题

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?本题相对书上原题稍作改动[3,0,1]28。

2023-10-22 16:13:43 48 2

原创 考研计组第二章定点数的加减运算以及溢出判断

在之前学习当中我们知道了讨论加减运算一般不讨论反码,只讨论原码补码。

2023-10-21 14:52:12 535 1

原创 C语言初阶(一)

若主函数不想接受参数。

2023-10-20 22:53:25 116 2

原创 计组考研第二章 定点数的移位计算

逻辑左移:低位补0,高位舍弃逻辑右移:高位补0,低位舍弃。

2023-10-19 20:41:35 131 1

原创 计组考研第二章运算电路(五)

n位的加法可以拆解为一位一位的加法、1bit的加法思想:有本位和还有来自低位的进位,如果有本位和如果偶数个一则为0,进一位,然后和来自低位的进位会和本位和比较。如果奇数个一则不进位。本位和:两个输出和来自低位的进位,如果有奇数个一则输出一,偶数个一则输出0本位像高位的进位 :如果两个本位是两个一的话一定会像高位进一,如果本位一个为一,但来 自地位的进位为一那么也进一。

2023-10-17 20:36:37 448

原创 leetcode 刷题之移除元素

给你一个数组nums和一个值val,你需要移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

2023-10-16 23:22:22 126

原创 考研计组第二章(3)(逻辑运算)

奇数个1,则异或为1,偶数个1则异或为0: 偶数个1,为0:奇数个1,为0。

2023-10-15 14:41:04 161 1

原创 王道考研第二章(2)

由于原码到补码需要反码+1过度。这就导致当反码为【-0】时反码为 11111111,这时反码+1,就会导致位数超过计算机规定的位数8位。注意:真值0补码只有一种表示形式:定点整数的补码【x】补=1,0000000,范围为 -≤ x ≤ 1-。比原码 多表示一个-。此时表示x=定点小数的补码【x】补=1.0000000,范围为 -1≤ x ≤ 1-。(比原码多一个-1)此时x表示 x=-1。

2023-10-14 14:45:54 162 1

原创 考研王道第二章(1)

若x1 = + 0.1101,x2 = -0.1101,字长为8,则原码表示 【x1】= 0.1101000,【x2】= 1.1101000。例如:x1为+1110,x2为-1110 ,字长为8为,所以【x1】原= 0,0001110;真值0有两种表示方式:第一个0与1表示符号,逗号表示符号位与真值的区别。【-0】反码 = 11111111 【-0】原码 = 10000000。若系统分配n+1个bit位,那么符号占一个bit,数值占n个bit,r为基数,每个数码位所用到的不同符号的个数,r进制的基数是r。

2023-10-13 21:40:38 96

原创 计算机组成原理考研第一章(二)

首先预处理,然后编译器将它转换成汇编语言,然后汇编器将汇编语言转换成计算机语言,最后链接器将计算机语言和写程序时引用的各语言的标准库链接成可执行文件。如果A的主频为2hz,cpi为10,B的主频为1hz,cpi为1,那么A一秒只能执行0.2条指令,而B一秒能1G条指令.是将,如我们定义一个PI,PI = 3.1415926,计算机语言不认识PI,所以预处理是将PI还原成3.1415926。是计算机软件和硬件之间的交接面,ISA定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作。

2023-10-09 16:59:43 126 1

原创 计算机组成原理考研王道全程班第一章

计算机系统=硬件(主机,外设,计算机实体)+软件(程序)软件由(1)系统软件:如操作系统,数据库管理系统(DBMS)等(2)应用软件:如抖音等。

2023-10-08 18:53:17 123 1

原创 C++对于C的加强/以及三目运算符

1.c语言定义结构体变量需要加上struct,c++中不需要2.c语言结构体只能定义成员变量,不能定义成员函数,c++可以定义成员变量,也可以定义成员函数。

2023-10-07 19:20:54 132 1

原创 c++:using的声明和编译指令

让某个命名空间下的标识符都可以直接使用在我们定义变量时可能会定义很多个变量,那么在调用时,就要使用作用域标识符,每调用一次就要写一次很麻烦,所以可以使用using。

2023-10-06 17:31:02 137 1

原创 c++命名空间和作用域

则需要带有命名空间名,在.cpp文件使用myMaker1::func()来访问函数,但是报错,报错的原因是,在写func函数的实现的时候没有写作用域。在这里我们发现在同一个.h头文件里,有两个相同的函数func()但也没有报错,因为命名空间不同。在输出嵌套命名空间全局变量时,使用 外命名空间名+::+内空间名+::+变量名。若有命名空间则使用 命名空间名+::+变量名。::的作用 标识出函数的作用域,如命名空间,全局变量等。所以需要在实现func函数时带上作用域::和命名空间名。在访问时,有就近原则。

2023-10-06 16:54:32 161 1

原创 c++ 实现求圆的面积,用面向对象和面向过程两种方法

这是c语言思想先定义变量半径r,面积s;在求s,s=3.14*r*r在输出s。

2023-10-05 00:22:55 1715

原创 C++第一堂课

1. 封装:把事物抽象成一个类,如想象你有个女朋友,你可以抽象出她的一下属性如年龄,身高,颜值。把他封装成一个类。2.继承:多个类之间可以继承其属性。3.多态:一个接口可以有多个属性:如你见到你的女朋友会调用一种情绪,你见到你的兄弟又会调用其他的情绪。

2023-10-04 23:49:48 96 1

原创 线性有序表的合并思想以及代码

3.将多的数放到LC中,若LA的数多于LB或者LB的数多于LA那么,将多的数放入LC。2.将小的数放到LC中,LA与LB比较将小的数放入LC。题目:有序表LA,LB的合并算法。1. 创建三个表LA,LB,LC。4.LC最后为最后合并的有序表。

2023-10-02 22:13:27 94 1

基于C语言的五子棋代码实现

基于C语言的五子棋代码实现,vs2022,玩家和电脑pk。可应用于课程设计,期末大作业等,语言简单明了。

2024-01-25

数据结构顺序初始化增删改查以及销毁原码

适合考研和专升本的同学,关于数据结构顺序初始化增删改查以及销毁原码。图文并茂,注解解释。0基础都能看懂的代码。

2023-11-07

空空如也

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

TA关注的人

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