自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构-Java描述】栈与队列OJ题

思路准备两个栈,一个栈存放压入的元素,另一个栈存放最小的元素,压栈时,只有当第二个栈为空,或压栈的元素小于第二个栈的栈顶元素时,才往第二个栈里放元素,检索最小元素直接看第二个栈栈顶即可,另外,当出栈时出的元素和第二个栈栈顶元素相同,则要同时出栈,思路准备一个栈,如果是数字,压栈,遇到符号,出栈两个元素,首先出栈的元素放在符号右边,后面出栈的元素放在符号右边,形成一个表达式,计算表达式结果,将值压栈,遍历完成后栈里只剩下一个元素,该元素即为所求值。思路准备两个对,入队操作时,直接入队即可。...

2022-07-28 21:02:52 611 1

原创 【数据结构-Java描述】栈与队列

循环的队列一半由数组实现,定义两个指针,一个指向头结点,一个指向尾结点,并且设定一个位置作为缓冲区,这个位置不存放数据,当尾结点的下一个是头结点时意味着队列已满。队列是一种只允许一端进行插入操作,另一端进行删除操作的特殊线性表,队列具有先进先出的特性,入队列进行插入操作的一端称为队尾。栈是一种特殊的线性表,数据只能在栈顶一端进行插入与删除操作,数据元素遵从“先进后出”的原则。在实际使用过程中,栈可以改变元素的序列,以及可以将递归转为循环等.....压栈栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。...

2022-07-26 21:55:07 152

原创 【数据结构-Java描述】顺序表与链表OJ题

思路链表逆置,从头遍历,设定一个前驱节点,开始时将前驱节点置为null,而后遍历时记录当前节点cur,后继节点curnext,前驱节点prev,逆置时,要先记录curnext,然后将当前节点的后继指向前驱prev,在把prev指向当前节点,然后把cur指向后继节点curnext.....最后返回尾部节点即可。思路如果链表带环,则设定两个快慢指针,当快指针的步长为2,慢指针步长为1,如果带环,一定可以相遇,如果出现尾结点,那么一定不带环。思路定义两个快慢指针,慢指针一次走一步,快指针走两步。...

2022-07-25 21:43:56 401

原创 【数据结构-Java描述】List接口/ArrayList与顺序表/LinkedList与链表

线性表是n个数据元素的有限序列,常见的线性表有顺序表、链表、栈、队列...线性表上存放的元素呈一条连续的直线,所以说线性表在逻辑上是连续的,但在物理结构上不一定连续,因为线性表是可以由数组和链表实现的。List是一个继承至Collection的接口,从数据结构的角度看,List是一个线性表,可以存储一组不唯一,类型相同,插入顺序有序的对象,并可以通过List接口提供的方法进行增删改查。线性表分为顺序表及链表,顺序表上存储的数据元素在内存单元是连续分布的,因此顺序表既逻辑连续也物理连续。...

2022-07-24 21:10:09 334

原创 【数据结构-Java描述】Java集合框架/复杂度/初识泛型

数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

2022-07-23 21:58:57 284

原创 Java-面向对象编程思想-类与对象

Java是一门纯面向对象的语言,在java的世界里,一切皆为对象。面向对象程序设计关注的主体是对象,通过对象之间的交互来完成,无需关注具体实现的过程。类类是面向对象编程中最基本的技术,类是对字段,方法,构造函数等进行封装之后的内容,类相当于一个设计图,通过类这个设计图可以实例化出对于的主体,也就是设计图对应的“建筑物”。类的声明:class Student{ String name; string sex; int age;}这样看起来,类像是C语言中的结构体,

2022-05-26 22:20:04 386

原创 C语言-程序的编译

C程序的翻译环境与执行环境。翻译环境指的是将源文件转换成可执行的机器指令的环境,执行环境用于实际执行代码。在翻译环境中,每一个源文件通过编译被转换为目标代码(obj),目标文件通过链接器捆绑在一起,形成一个单一的可执行程序,链接器同时也将函数库中的函数链接到程序中。编译分为 预编译(预处理),编译,汇编三个阶段。在预编译阶段,把包含的头文件代码放入源文件中,进行define定义的符号的替换,以及注释的删除。在编译阶段,通过语法分析,语义分析,词法分析,符号汇总把C语言代码翻译为汇编语

2022-04-13 20:20:42 199

原创 C语言-文件操作

文件指针:FILEFILE是C语言系统声明的一种结构体类型,文件的相关信息会存放在在FILE类型的变量中,在打开文件后,通过这个结构体变量对该被打开的文件进行维护。打开一个文件后,系统会自动创建一个FILE类型的变量,通过该文件指针变量能够找到与他关联的文件。文件的打开与关闭:在读写文件前需要先打开文件,文件使用完毕后需要关闭文件。使用fopen函数来打开文件,使用fclose函数来关闭文件。fopen函数需要传递两个字符串类型的参数,分别是文件名,和打开模式打开模式文件使

2022-04-08 21:47:14 664

原创 C语言-动态内存管理

动态内存开辟函数 malloc与动态内存释放函数free:void* malloc (size_t size);使用malloc开辟空间时,需传递一个size_t类型的参数作为需要开辟的内存空间的大小(以字节为单位)malloc函会返回一个void*类型的指针,指向开辟好的空间的起始位置若开辟失败,则返回空指针NULL(所以返回后要做好检查。)使用时需注意,开辟好后需要保存好返回的起始位置地址,在使用完该空间后,需要使用free函数对该空间进行释放,否则会造成内存泄露。voi

2022-04-01 21:25:58 660

原创 C语言-自定义结构类型

1.结构体结构体声明:结构体是一些值的结合,这些值被称为成员变量,每个成员可以是不同类型的变量。例如声明一个结构体"学生"struct student{ char name[20]; char sex[5]; int age; float score[5];};也一些特殊情况下,也可以进行不完全的声明。结构体变量的声明和初始化:struct student{ char name[20]; char sex[5]; int age; flo

2022-04-01 20:33:41 133

原创 C语言--字符串操作函数与内存操作函数

字符串操作函数strlen-求字符串长度函数实现原理:遍历字符串 直至发现字符串末尾的'\0',。模拟实现代码:unsigned int mystrlen(const char* arr){ int count = 0; assert(arr != NULL); while (*arr) { arr++; count++; } return count;}strcpy-字符串复制函数将一个字符串的内容复制至另一个字符串实现原理:遍历源字符串的每一个字符,

2022-03-24 17:04:37 1048

原创 编程学习记录——第9课【操作符】

位操作符移位操作符在不赋值的条件下不会改变被移位对象的值。左移操作符操作规则:左位丢弃,右位补零。例如 char a=1;a在计算机内被储存为二进制序列0001;a<<1表示a左移一位即移位成0010 a的值变为2。右移操作符右移操作分为算术右移和逻辑右移,算术右移,最右位丢弃,左位用原值的符号位填充。逻辑右移,右位丢弃,左位补0。使用右移操作符时具体是算术右移还是逻辑右移取决于编译器。按位与/按位或/按位异或,按位与操作符 & 是双目操作符,按位与:在同一位

2022-01-25 13:56:29 508

原创 编程学习记录——第8课【数组与设计五子棋,扫雷游戏】

数组是指一组具有相同类型的元素的集合。一维数组一维数组的创建及初始化 例int arr[]={1,2,3,4},表示创建了一个大小为4的数组,数组内为四个整型元素1,2,3,4。char arr[]="abcd",表示创建了一个大小为5的数组,数组的元素为'a','b','c','d','\0',。其中\0为字符串的结束标志。int arr1[10] = {1,2,3};表示创建了一个大小为10的整型数组,第一,二,三个元素分别为'1';'2','3'.其余元素初始化为0。1. 数组是使用

2022-01-23 20:38:25 2626

原创 编程学习记录——递归解决汉诺塔问题

1. 对递归的理解,传递再回归,首先要设计一个基准情形,这个基准情形,在某些情况下,它无需递归就能解出。2.然后将遇到的问题可以分解为基准情形,与非基准情形,非基准情形也能再分解为基准情形与非基准情形。3.如汉诺塔,假设圆盘数为4,那么就可以把最上面三个圆盘看为一个整体,与最下面一个圆盘组成四个圆盘,而基准情形就是当只有一个圆盘时该如何移动 。4阶分解为3阶和1阶,3阶分解成2阶和1阶,2分解成1阶和1阶.4.事实上,在汉诺塔问题中,1阶的移动可以看成是从A柱直接移动至C柱5.而在二阶中,第一步A先移动至B

2022-01-19 19:59:56 517

原创 编程学习记录——第7课【函数】

函数声明1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数 声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放在头文件中的。函数定义函数的定义是指函数的具体实现,交待函数的功能实现。函数的递归一个过程或函数在定义或说明中有直接或间接调用其本身的一种方法,通常可以把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解, 递归可以简化减少程序代码数量,但也可能会加大

2022-01-19 16:15:13 411

原创 编程学习记录——第6课【函数】

函数在计算机科学中,函数是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。库函数为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。有函数名,返回值类型和函数参数。例 memset函数的使用,是将字符串ptr的第1至num个字符用value代替。void * me

2022-01-18 16:46:06 265 1

原创 编程学习记录——第5课【分支和循环语句】

do while语句先执行语句,后判断,意味着至少执行一次。二分查找在一个已排序的数组中查找一个元素,因为已排序,可以通过二分发查找,通过对数组中间元素进行大小判断,缩小查找范围,如此往复,直至找出对应元素为止。#include <stdio.h>int main(){ int i = 0;int n = 0;int arr[100] = { 0 }; printf("请输入元素个数(不超过100):\n"); scanf("%d", &n); printf

2022-01-16 20:32:39 2364

原创 编程学习记录——第4课【分支和循环语句】

条件判断语句:if,Switchif语句if语句:if(条件表达式)语句;其中相等的判断要用==。多个判断语句,if(条件表达式)语句;if(条件表达式)语句;表示同时判断多个,并同时执行,没有先后顺序。相互之间并没有影响if(条件表达式)语句;else if(条件表达式)语句;if 块和 else if 块本质上是互斥的,也就是说,一旦语句1得到了执行,程序会跳过 else if 块,else if 块中的判断语句以及语句2一定会被跳过。而当if中的条件不成立时,才会去判断else if中

2022-01-15 21:00:33 112

原创 编程学习记录——第3课【初识C语言】

关键词staticstatic作用于局部变量,使局部变量的生命周期变长,

2022-01-14 21:14:36 146

原创 编程学习记录--第2课【初识C语言】

常量1.字面常量,如π。2.const定义的常变量,具有常属性,但实质上是变量。3.标识符的常量 如#define #define tall 186,4.枚举常量 enum(枚举关键字)。转义字符\0 为字符串打印的结束标志。初始化数组时,若数组元素是字符串,则需要带上\0。\ddd 表示1-3位八进制数字,八进制数字范围0-8.\xdd表示两位十六进制数字。操作符前置++,表示先++,后赋值,后置++,表示先赋值,后++。例a=10,b=++a,得到a=b=11,若b=a+

2022-01-12 20:42:37 503

原创 【第一篇博客-展望】

1.自我介绍东北石油大学学生,大二,传统工科在读,目标学习两年后转码。编程学习目标:寒假期间学完C语言初阶,2022年上半年期间学完数据结构与算法,操作系统,下半年学完计算机组成原理,计算机网络原理,以吃透教材为基本。学习期间,以听比特课程为主,以及学习一些慕课课程,看书作为补充,并且按照学习进度完成书中习题与实验。从现在开始,要求每周需要至少花25小时学习编程。目标是进入腾讯的引力计划,并拿到实习offer。...

2022-01-10 13:14:22 183

原创 编程学习记录--第1课【初识C语言】

学习的知识点:1.什么是C语言2.数据类型3.常量与变量4.作用域与生命周期

2022-01-10 13:08:27 229

空空如也

空空如也

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

TA关注的人

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