自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言链表项目-学生信息管理系统

来给找个BUG呗,欢迎提出见解核心知识单向链表基本操作+对文件的基本操作使用说明请先建好一个.txt文件并记下路径名,文件可以为空,也可以预先存好数据建议创建一个空文件,通过程序来向文件中存数据。手动去文件中存数据需要严格按照格式。如果想预先手动存一些数据,需要按照以下格式:在某些编译器上,姓名可能不支持中文姓名1 语文 数学 英语 计算机 C语言 平均分 总分1…姓名n 语文 数学 英语 计算机 C语言 平均分 总分n文件结尾,也就是最后一行的总分n后面不要有任何字符。

2020-07-01 12:14:25 339

原创 KMP

title: KMPdate: 2020-10-27 00:27:16tags: [KMP, AL, C语言, 算法, 数据结构, DS]categories: DSandALKMP算法,代码写的不好看,也不简洁,自己手敲的,也算是开天辟地了后续持续优化代码 + 思路详细讲解,只希望让后来者少踩坑,起码不要踩我踩过的坑 T^T先附上代码,后续更新详细讲解非递归求next数组// 开始手写KMP 自我感觉还是不太好的// 串的底层用静态数组实现#include <stdio.

2021-04-22 20:09:16 97

原创 Java加载顺序

title: Java代码执行顺序date: 2021-03-30 20:28:37tags: [JavaBase, Java变量加载顺序]categories: JavaJava源文件中代码的加载顺序执行顺序对类的加载加载类的方法和静态属性 为方法和静态属性分配空间按照静态代码块和静态属性定义语句 在源文件中的顺序执行静态代码块中的操作和对属性的初始化(初始化默认赋0、null等)加载对象当一个对象被初始化时,为对象开辟空间,给对象的非静态属性分配空间(不包括静态属.

2021-04-22 20:08:46 102

原创 Java枚举源码级理解

title: Java枚举源码级理解date: 2020-11-08 16:47:39tags: [Java枚举, 源码理解, Java源码理解, 枚举, JavaBase, Java基础]categories: JavaJava中枚举体的一些东西很怪,看了源码之后恍然大悟,收获颇丰废话不多说,直接上代码第一种形式枚举体定义public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;.

2021-04-22 20:08:15 177

原创 OS记录型信号量-读者写者问题

dtitle: OS记录型信号量-读者写者问题date: 2021-04-09 19:06:16tags: [信号量机制, OS, 读者写者问题, 记录型信号量]categories: OS 利用记录型信号量实现读者写者问题写在最前最近对 OS 这门课着了迷,hhh,拿起课本就是硬啃用了一段时间领悟了记录型信号量的几个版本这是对记录型信号量的一个应用,那么 pv操作( 即wait()和signal() )的具体代码描述 肯定是要烂熟于心的在这里我就不写书上那么详细.

2021-04-21 17:02:46 709

原创 链表头插, 链表逆置

title: reverse the linkListdate: 2020-09-23 17:49:03tags: [链表头插, 链表逆置, C语言, 算法, AL, DS]categories: DSandAL链表的头插和逆置操作,很有技巧性,很值得思考#include <stdio.h>#include <stdlib.h>typedef struct MyStruct{ int data; struct MyStruct* next;}Node, .

2021-04-21 17:01:51 61

原创 此资源非彼资源

title: 此资源非彼资源date: 2021-04-10 20:08:41tags: [系统资源问题, 操作系统, OS, 进程阻塞, 进程运行, 进程激活]categories: OS啃书过程中产生的疑问,最后想通了,并且推广到了一般情况问题出处计算机操作系统 第四版 P60问题描述在看AND型信号量的Ssignal操作中的一段伪代码的时候产生的疑问,最后我给推广了,也不错,想通了一个事hhh其中的一段伪代码是这么描述的????Remove all the process wa

2021-04-21 17:01:07 91

原创 二叉树与树

title: 二叉树date: 2020-11-07 21:25:16tags: 二叉树categories: 数据结构主要记录个人认为比较重要或是易错的知识二叉树和树 区分二叉树不是树, 因为相比于树,它多了两个条件,每个结点的度最多是2 (此属性并不能否定它是一个树,因为可以认为是树的一种特殊形式)。每个结点的孩子(若有孩子)有左右之分,这个条件直接否定了它是一个树,因为树的孩子可以没有左右之分。二叉树的性质三对任何一棵二叉树 T,如果其叶子数为 n_0,度为 2 的结点数.

2021-04-21 17:00:09 2148

原创 二分搜索

title: 二分搜索date: 2020-12-22 20:25:07tags: 二分搜索categories: 数据结构二分搜索,写的时候和快排做了一波对比,还是有一些收获的// 二分搜索// 二分搜索不同于快排中的二分递归,// 二分搜索路径只有一条,只要找到头就可以了// 而快排中的二分需要全覆盖(因为是要对整个数组进行排序)// 这也是为什么二分搜索不使用递归也可以很轻松地实现// 递归写法和非递归写法#include <stdio.h>#define .

2021-04-21 16:59:36 61

原创 非递归后序遍历二叉树

title: 非递归后序遍历二叉树date: 2020-12-25 20:06:53tags: 后序遍历categories: 数据结构使用栈实现后序遍历二叉树写了很久很久很久,可能是自己太长时间没写这样的代码了吧,简直把自己写崩溃了,不过还好,终于算是写出来了。有的是写了才发现存储结构开的不对, 有的是平时没有遇到的比较神奇的bug 也不算是神奇吧,就是平时没有遇见过的问题,也算是有收获了。爱瞎搞,爱作,可不就遇到很多阴间问题呗~ hhhhhh里边附带了一个自己瞎搞想出来的偷懒生成满.

2021-04-21 16:58:24 161

原创 广义表之树的兄弟孩子表示法

title: 广义表之树的兄弟孩子表示法date: 2020-11-17 15:55:55tags:兄弟孩子广义表二叉树categories: 数据结构用兄弟孩子广义表来表示二叉树对比二叉树转化来的兄弟孩子广义表和普通的兄弟孩子广义表并不相同二叉树转换成的兄弟孩子广义表没有明确的一块内存结构来直接表示它是叶子节点还是双亲结点,而是通过 指针 tp 来隐式地表示,tp 指向空,表示它没有孩子节点,否则,有孩子结点普通的兄弟孩子广义表则是通过 tag = 0 或 1 来表示.

2021-04-21 16:57:45 1336

原创 稀疏矩阵转置

title: 稀疏矩阵转置date: 2020-10-30 14:38:52tags: 稀疏矩阵转置categories: 数据结构稀疏矩阵的转置#include <stdio.h>#define MAX_LENGTH 100// 定义一个用来表示非零元素的结构体typedef struct a{ // 非零元素的行下标 int rowIndex; // 非零元素的列下标 int colIndex; // 非零元素的值 .

2021-04-21 16:57:03 160

原创 快速排序

title: 快速排序date: 2020-11-01 21:45:34tags: 快速排序categories: 数据结构快速排序,分治递归主要思想分治(二分)递归取一个标准值,将比标准值小的放在标准值前,比标准值大的放在标准值后。 此操作视为进行了一次快排然后对标准值前面的子数列和标准值后面的子数列分别进行快排,就这样通过调用递归函数不断地二分…直到第一步快排得到的前面的子数列在不断二分过程中得到的最后一个子数列的标准值和begin相等为止。二分递归比较难理解,建议在纸上演算一下.

2021-04-21 16:55:50 51

原创 内部类

title: 内部类date: 2021-04-03 16:16:30tags: [Java, 内部类, JavaBase, Java基础]categories: Java对内部类,主要是匿名内部类的一波复习以及对其浅层原理的思考写在最前学安卓的时候匿名内部类忘光了,写这篇文章主要是为了复习一波匿名内部类,看了一会匿名内部类,发现很多内部类的东西也是忘的差不多了,毕竟这些东西是一个有机的整体(好像也不太恰当哈 匿名内部类是内部类的一部分),单单复习匿名内部类收获不大,也领略不到一些原理.

2021-04-20 19:03:24 46

原创 双向链表基本操作

title: 双向链表基本操作date: 2020-10-12 21:12:51tags: 双向链表categories: 数据结构    双向链表的基本操作初始化一个空的双向链表尾插添加结点顺序随机掉头逆序打印双向链表按序号添加结点按序号删除结点// 双向链表#include <stdio.h>#include <stdlib.h>typedef struct linkList{ int dat.

2021-04-20 19:02:13 184

原创 头指针单向链表基本操作

title: 头指针单向链表基本操作date: 2020-10-04 16:47:34tags: 单链表基本操作categories: 数据结构感觉每次自己提前写的东西都和老师讲的书上内容不太一样= =当然大多数是老师讲的更正规一些,毕竟我只是一个会了链表本质就瞎玩的人属于自己琢磨,自己造的那种,很多东西也是不怎么规范但是有的东西我就觉得自己的更好比如下面所说…课本上写的是以头指针为基本单位,每次开一个头指针,即可视为开辟了一个链表。而我参考了动态数组静态数组的写法,将头指针作为了.

2021-04-20 19:01:37 226

原创 稀疏矩阵乘法

title: 稀疏矩阵乘法date: 2020-11-09 19:31:44tags: 稀疏矩阵运算categories: 数据结构在本算法中,两个稀疏矩阵的特性都有用到规定规定以下变量名称,本文讲述 矩阵A × 矩阵B = 矩阵C 的运算过程需要用到的存储结构有:矩阵A,矩阵 B 的原始二维数组(2个)矩阵A,矩阵B 的三元组数组(2个)存储 矩阵A,矩阵B 每行有多少个非零元的数组(2个,分别存A、B矩阵)存储 矩阵B每行首个非零元在三元组数组中的位置的数组(1个)需要开.

2021-04-20 19:00:56 2177 1

原创 简单选择排序

title: 简单选择排序date: 2020-12-22 21:35:48tags: 排序算法categories: 数据结构选择排序 ,最简单的排序算法之一平均时间复杂度最坏时间复杂度空间复杂度稳定性O(n^2)O(n^2)O(1)不稳定// 选择排序// 首先通过 n –1 次关键字比较,从 n 个记录中找出关键// 字最小的记录,将它与第一个记录交换。 // 再通过 n –2 次比较,从剩余的 n –1 个记录中找出关键// 字次小的记录,.

2021-04-20 19:00:21 73

原创 循环队列

title: 循环队列date: 2020-10-22 21:14:05tags: 循环队列categories: 数据结构循环队列,底层内存结构:静态数组灵魂思想: 将指针的自增改为 指针 = (指针+ 1) % (数组的真实长度)// 循环队列// 为了区分空队列和满队列// 在这里我们认为当整个数组只剩下队尾的那块空间时,队列已满// 当对头和队尾相等时,列队空// 因此 队列中成员个数的最大值是 MAX_SIZE - 1#include <stdio.h>.

2021-04-20 18:59:35 86

原创 循环链表的打印 合并

title: 循环链表的打印 合并date: 2020-10-02 21:12:27tags: 打印、合并循环链表categories: 数据结构本文中的所有操作均使用 设有尾指针的循环链表完成,目前只写了打印和合并两个操作,后续持续更新~看名字都可以知道,使用尾指针的循环链表和使用头指针单链表的区别顾名思义,很容易就看出它们两个有以下这两个区别:前者没有头指针,只有尾指针,尾指针存的是尾结点的地址,即它指向尾结点,尾指针->next 就得到了头结点的地址前者的尾结点.

2021-04-20 18:58:43 465

原创 依据广度优先的输入字符串 生成二叉树

title: 依据广度优先的输入字符串 生成二叉树date: 2020-12-26 11:18:34tags: 二叉树categories: 数据结构根据广度优先输入的字符串 生成一颗二叉树说明 这个根据输入的字符串自动生成一个二叉树 使用的思想是广搜(BFS) 要用到队列生成二叉树 举个例子 输入 12634^7^^^58^^^^^ 生成的二叉树为: 1 / \ .

2021-04-20 18:57:52 178

原创 直接插入排序

title: 直接插入排序date: 2020-12-22 16:48:21tags: 排序算法categories: 数据结构直接插入排序,注释中给了比较详细的理解平均时间复杂度最坏时间复杂度空间复杂度稳定性O(n^2)O(n^2)O(1)稳定讲解版#include <stdio.h>int main(void){ // 初始化一个数组,0号空间不用,给它赋值成0 int arr[11] = {0, 0, 8, 5, 1, 2, .

2021-04-20 18:57:04 71

原创 自动生成完全二叉树

title: 自动生成完全二叉树date: 2020-12-25 20:22:05tags: 完全二叉树categories: 数据结构需要写完全二叉树的算法时,再也不用费时间去初始化一个二叉树了hh~存储结构二叉链表, 如果要写的算法不是基于二叉链表,那么肯定就偷不了懒啦思路基本思路就是直接生成一个数组长度length的节点然后利用完全二叉树的性质和数组的下标把它们串起来要用到的完全二叉树的性质分支节点个数 = 总节点个数 整除 2 (在数学中就是 除以二 再向下取整)序.

2021-04-20 18:56:15 739

原创 字符串排序

输入描述:第一行输入一个正整数T,表示测试用例数量。每组测试用例第一行输入一个正整数N(N 不超过100000),表示名单长度。接着输入N 行,每行输入一个字符串(每个字符串串长不超过20 个字符)。输出描述:逐行输出排序好的名单。输入样例:25VaderYodaSkywalkerLeiaHan5GryffindorHufflepuffRavenclawSlytherinAzkaban输出样例:HanLeiaSkywalkerVaderYodaAzkaba

2020-10-23 00:00:39 93

原创 动态数组操作

​ 动态数组操作均封装成函数,涉及到的操作有:动态数组初始化打印添加元素删除元素代码附上// 动态数组#include <stdio.h>#include <stdlib.h>#define InitialSize 10#define EachIncreaseSize 10#define BatchAddNumber 10typedef struct DynamicArray{ int *array; int arrayLenth

2020-10-02 18:52:43 391

原创 合并两个有序链表

两个有序链表合并为一个有序链表。使用三个指针分别起到遍历三个链表的作用。#include <stdio.h>#include <stdlib.h>// 在这里宏定义链表1和链表2的长度#define LISTONE_LEN 10#define LISTTWO_LEN 6typedef struct list{ int data; struct list *next;} Node, *pNode;// 添加结点void AddNode(pNo

2020-09-29 18:05:51 66

原创 HDOJ 2097

Sky数Problem DescriptionSky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。Sky非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Sky数。但是要判断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。Input

2020-05-19 17:56:06 135

原创 HDOJ 2098

分拆素数和Problem Description把一个偶数拆成两个不同素数的和,有几种拆法呢?Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。Output对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。Sample Input30260Sample Output32题解题目:把一个偶数拆成两个不同素数的和,可以拆成几对?需要满足以下3点:要拆成的两个数是素数这两个数的和为输入的那个偶数这两个数不相等因此,输

2020-05-19 12:01:46 142

原创 HDOJ 2099

Problem Description一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?Input输入数据有若干组,每组数据包含二个整数a,b(0<a<10000, 10<b<100),若遇到0 0则处理结束。Output对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。Sample Input200 401992 950 0Sample Output00 40

2020-05-17 18:22:11 223

原创 HDOJ 2032

Problem Description还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1Input输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。Output对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。Sample Input2 3Samp

2020-05-15 19:47:17 133

原创 HDOJ 2036

Input输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2… xn, yn),为了简化问题,这里的所有坐标都用整数表示。输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。Output对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数。每个实例的输出占一行。Sample Input3 0 0

2020-05-14 09:53:36 126

原创 HDOJ 2031

写在最前:此方法为个人瞎搞,非正规方法 ,可能不太好看懂,但是时间复杂度是很有保证的Problem Description输入一个十进制数N,将它转换成R进制数输出。Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。Sample Input7 223 12-4 3S

2020-05-13 17:04:35 131

原创 HDOJ 2054

Problem DescriptionGive you two numbers A and B, if A is equal to B, you should print “YES”, or print “NO”.Inputeach test case contains two numbers A and B.Outputfor each case, if A is equal to B, you should print “YES”, or print “NO”.Sample Input1

2020-05-12 23:34:47 153

原创 求n个数的最小公倍数

Problem Description求n个数的最小公倍数。Input输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。Output为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。Sample Input2 4 63 2 5 7Sample Output1270大体思路将n个数存进数组里,求出数组下标为0 和 1 的两个数的最大公因数,然后用两数乘积除以两数的最大公因数, 以此来求出下标为0 和 1 的

2020-05-12 10:59:52 1035

原创 HDOJ 2029

Problem Description“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。Input输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。Output如果一个字符串是回文串,则输出"yes",否则输出"no".Sample Input4levelabcdenoonhahaSample Outputyesnoyesno#include

2020-05-12 09:57:43 160

原创 HDOJ 2025

Problem Description对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。Input输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。Output对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。Sample InputabcdefgfedcbaxxxxxSample Outputabcdefg(max)

2020-05-10 00:56:08 93

原创 HDOJ 2024

Problem Description输入一个字符串,判断其是否是C的合法标识符。Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。Output对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。Sample Input312ajffi8x_aff ai_2Sample Outputnoyesno#include <stdio.h.

2020-05-10 00:23:07 121

原创 高精度加法 — C语言

#include <stdio.h>#include <string.h>#define max 10000int a[max], b[max];char s1[max], s2[max];int main(void){ int i, lenth1, lenth2, lenth; scanf("%s %s", s1, s2); lenth1 = strlen(s1); lenth2 = strlen(s2); if (lenth

2020-05-08 21:45:01 202

原创 一行代码

一行代码,实现大于0赋值为1,小于0赋值-1,等于0不变rtn = (rtn > 0) - (-rtn > 0);

2020-05-08 15:56:25 191

原创 HDOJ — 2023(二维数组各行各列的平均数+多次输入坑点重重)

Problem Description假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。Input输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。Output对于每个测试实例,输出3...

2020-05-08 12:40:45 211

空空如也

空空如也

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

TA关注的人

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