自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 KMP && BFPRT && 马拉车(Manacher)

6666666而

2022-03-26 21:38:13 442

原创 归并、快速、堆、桶排序的一点记录

啦啦啦

2022-03-22 20:33:37 502

原创 Java学习

哈哈。。

2022-03-05 16:42:04 96

原创 程序的编译、宏

程序的一般运行过程:1.宏常量:#include"stdio.h"#define PI 3.14#define STR "圆周率约等于"int main(){ printf("%s %f",STR,PI); return 0;}2.宏语句:#include"stdio.h"#define Print printf("hello world!")int main(){ Print; return 0;}3.宏函数:#include"stdi...

2022-02-24 13:13:58 343

原创 C结构体内存对齐

1.结构体的大小:struct S1{ char a1; int a2; char a3;};int main(){ struct S1 s1; printf("%d", sizeof(s1)); return 0;}你以为的结果是 2*sizeof(char)+sizeof(int),但是结果却是12,那么为什么会这样呢??这就引入了我们的结构体内存对齐问题,怎么观察呢?我们可以用offsetof这个函数来观察,这里不详细赘述,说明结构体内存对齐的几个点:1.首元

2022-02-24 11:51:41 389

原创 动态内存管理

目录1.动态内存错误:1.对空指针的解引用: 2.对动态内存开辟的空间越界访问:3.非动态开辟的内存进行free:4.对动态内存的某一部分free:5.对同一块内存进行多次释放:6.忘记释放:2.一些笔试题目:3.柔性数组:1.动态内存错误:1.对空指针的解引用:有些时候我们动态内存开辟失败就会造成空指针的解引用,例如:int main(...

2022-02-22 21:13:27 226

原创 文件操作(hh)

文件打开与关闭操作:fopen():文件打开操作函数定义:FILE *fopen(char *pname, char *mode)函数说明:pname是文件名,mode是打开文件的方式mode:"r" 打开一个已经存在的文件文本,文件不存在则出错以“r+”的方式打开一个文件,会清空文件的原始内容,重新写入数据返回值:正常返回:FILE *一个指向文件在内存中的文件信息去的开头异常返回:NULL,表示打开操作不成功打开文件的作用是:(1)分配给打开文件一个FILE 类型的文件结构

2022-02-22 17:23:06 282

原创 数据结构(二):part2:队列

目录1.认识队列:2.队列实现的选择:3.预处理:4.初始化、销毁:5.出入队:6.队列大小、是否为空以及获取队列的首尾元素:7.最近学习数据结构的一点感想:1.认识队列:示意图:与栈类似但是又不同:1.队列也是只有一个出口;2.队列是先进先出的规则,所以与栈不同。进出队列不会影响数据的顺序。2.队列实现的选择:显然与栈类似,我们可以选择数组或者链表的方式,考虑到队列的先进先出,出数据的时候相当于头删,我们知道数组的头删十分麻烦,所以我们这里选

2022-02-09 14:51:33 726

原创 数据结构(二):part1:栈

1.认识栈:记住栈的以下特点:1.先进先出2.只可从最上面的元素出栈,不能从底下出去。2.栈的实现:由上可知,栈可以是多种实现方法,可以是链表,也可以是顺序表,这里我们用顺序表实现:预处理:#pragma once#include<stdio.h>#include<stdlib.h>#include<stdbool.h>#include<assert.h>typedef int StackDataType;

2022-02-08 20:53:17 632 2

原创 数据结构(一)链表(2:双向带头循环链表)

目录1.认识双向带头循环链表:2.预处理:3.初始化,前插后插:4.查找删除插入:5.其他:1.认识双向带头循环链表:从结构可以看出,这种链表两个指针,”前驱后继“,而head补位的指针只是一个“哨兵:,里面不用存放有效数据。与单向链表相比,这种链表可以不用传二级指针,遍历更少,前插后插更加方便,更加适合于存放数据。2.预处理:#pragma once#include<stdio.h>#include<stdlib.h>#i.

2022-02-07 13:28:08 561 1

原创 数据结构(一):链表(1:单向链表)

1.对链表的认识、预处理:链表,别名链式存储结构或单链表,用于存储逻辑关系为 "一对一" 的数据。与s顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。画图认知:通过指针来找到链表的下一个元素的位置,同时我们创建链表的时候用的也是指针,取名为头指针,头指针也是一种指针,这个时候就会出现对链表认知的一个难点,头指针指向的是这个链表头部位置,头部位置里面有也放着一个指针指向下一个元素,大体如图:这一点需要好好理解,区分二者的区别...

2022-02-06 16:07:54 650

原创 自定义类型、动态内存

位段:如struct A{ int _a:2; int _b:5; int _c:10; int _d:30;};int 是开辟空间的字节数4:后的数字时变量所占比特位的多少当第一个开辟空间够用是下一个不会开辟第二个空间比如本题就只开辟了两个int的空间占8个字节. 32个比特位位段的内存分配位段的成员可以是 int unsigned int signed int 或者是 char (属于整形家族)类型位段的空间上是按照需要以4个字节( int )或者1个字节( char

2022-01-23 15:47:44 405

原创 字符串内存函数

#include<stdio.h>#include<assert.h>void* MemMove(void* des, const void* src, size_t n){ assert(des && src); char* p = (char*)des; const char* pp = (const char*)src; if (p <= pp && p >= pp + n) { while (n--) {.

2022-01-21 15:38:09 44

原创 qsort的模拟实现

原型:msdn中介绍qsort是用快去排序实现,我们这里使用冒泡排序实现。qsort(void*base,size_t length,size_t width,int(*cmp)(void *e1, void *e2));(void *指针像一个垃圾桶什么都可以往里面装。)base:需要被排序的数组起始地址;length:需要被排序的数组的长度;width:需要被排序数组的每一个元素所占字节数;cmp函数:用户自定义排序类型函数;实现主体部分:以整形数组为例qsort部分

2022-01-18 11:08:42 342

原创 2022-1-15 指针

0.#define typedef的区别{typedef int* INT;#define int* Int;int main(){ INT pa, pb; Int pc, pd; return 0;}typedef就相当于是定义了一个新的关键字 INT 它定义的所有变量都是指针类型而#define只是把int*换成了Int所以我们得到的pa,pb都是指针变量而pc是指针变量,pd不是。}1.字符指针,贴代码:int main(){ char c.

2022-01-15 19:41:16 166

原创 时间复杂度、空间复杂度的计算。

<1.>时间复杂度:如下代码:for(i = 0;i<n;i++){ for(j = 0;i<n;j++) { count++; }}int a = 10;while(a--){count++;}基本操作执行了n*n+10次,但是随着n的增加,10对其影响微乎其微,所以这个程序的时间复杂度是O(n^2),所哟第一条原则:保留老大哥。for(i = 0;i<n;i++){

2021-12-11 16:02:57 405

原创 好题11-28

逆序单词并且输出,标点符号不变:eg: I like maomi.output: maomi. like I;思想:先把单词逆序,再把整个字符串逆序,最后打印出来代码:#include<stdio.h>#include<string.h>void reverse_string(char* sta, char* end){ while (sta < end) { char temp = *sta; *sta = *end; *end

2021-11-28 21:06:57 131

原创 C语言中数据的存储~

目录1.整形(char)类型的存储;2.奇奇怪怪的题目;3.浮点数的存储与示例;以下例子都是在32位机器下进行..1.整形(char)类型的存储:整形:在计算机中所有数字都是以二进制的补码形式存储。原码:正整数的原码就是其二进制数字,其他位往前补0,例如123的二进制为:1111011由于是在32位下,所以将其用0补齐,变成00000000 00000000 0000000001111011正整数的 原码 反码 补码 都是一样的!!!。 对于负数而言...

2021-11-27 21:53:47 576

原创 扫雷,简单版

太烂了..game.h:#pragma once#define ROWS 11#define COLS 11#define ROW 9#define COL 9#define COUNT 10#include<stdio.h>#include<stdlib.h>#include<time.h>void game();void Init_board(char board[ROWS][COLS], int row, int col, ch

2021-11-13 20:58:05 46

原创 c语言数组知识小应用

学习了c语言的顺序、选择、循环分支结构、数组、函数之后,我们一起来做一个小游戏---三子棋。1-游戏菜单设定:为了使游戏运行之后就直接答应菜单,选择do-while循环,那故意选错怎么办?这点我们用switch选择结构来规避,代码如下:<1.>菜单int input = 0; do { menu(); scanf("%d", &input); switch (input) { case 1: game(); break; case

2021-11-08 20:16:43 3114

原创 上路这件事儿

大家好,这里是一枚新加入IT的大一学生,在接下来的日子里会给大家分享我在学习过程中的收获以及感受,在这里先介绍一下我的个人计划:1.尽快入门C语言并且掌握相关语法,尽量做到扎实,大概两个半月到三个月的时间做完。 2. 接下来就是学习C++,同c语言一样,首先掌握语法,后续的学习过程中再去研究探索C++里面的各种内容。 3.后续便会进入数据结构算法的简单学习,当然在整个过程中,刷题会穿插进行。 4.再者就是MySQL数据库,Linu...

2021-10-16 14:47:49 67

空空如也

空空如也

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

TA关注的人

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