![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
勇敢*牛牛
CDND博客专家认证,JavaScript领域内容优质创作者 51TOC特邀创作者
展开
-
react准备阶段,虚拟DOM的两种创建方式-虚拟DOM的两种创建方式-JSX语法规则
react准备阶段,虚拟DOM的两种创建方式-虚拟DOM的两种创建方式-JSX语法规则原创 2022-07-16 20:30:59 · 291 阅读 · 0 评论 -
浅谈数组方法重构再封装-forEach-Map——push(),unshift(),shift(),Map(),filter(),every(),some(), reduce()
浅谈数组方法重构再封装-forEach-Map——push(),unshift(),shift(),Map(),filter(),every(),some(), reduce()原创 2022-07-15 19:24:23 · 265 阅读 · 0 评论 -
JavaScript——递归算法
JavaScript——递归算法案例原创 2022-07-14 17:05:44 · 263 阅读 · 0 评论 -
Day_3-循环分支 - do while- 循环分支 - for 循环- 求最大公约数_1 -求最大公约数_2_最小公倍数- 流程控制语句-arguments-总结函数-预解析-函数的执行过程牢记
Day_3-循环分支 - do while- 循环分支 - for 循环- 求最大公约数_1 -求最大公约数_2_最小公倍数- 流程控制语句-arguments-总结函数-预解析-函数的执行过程牢记原创 2022-07-14 01:15:00 · 565 阅读 · 0 评论 -
【js 的书写位置——三大核心——变量——输出语法——js 的数据类型——检测数据类型——数据类型转换——检测非数字的方法——运算符——条件分支 - if——条件分支 - switch】
【js 的书写位置——三大核心——变量——输出语法——js 的数据类型——检测数据类型——数据类型转换——检测非数字的方法——运算符——条件分支 - if——条件分支 - switch】原创 2022-07-12 17:49:30 · 390 阅读 · 0 评论 -
【前端面试怎么准备?第一弹】
【前端面试怎么准备?第一弹】原创 2022-05-26 13:05:22 · 276 阅读 · 0 评论 -
IP地址和端口号的概念
计算机只有一个物理网卡,而且同一个局域网中,网卡的地址必须是唯一的网卡是通过唯一的IP地址来进行定位的IP地址用来定位计算机端口号用来具体的应用程序(软件)一切需要联网的通信软件都会占用一个端口号端口号的范围是0-65536之间在计算机中有一些默认端口号,最好不要去使用例如:HTTP服务的80在开发过程过程中,使用简单3000呀,8000呀是木有意义的。原创 2021-12-28 22:19:44 · 6285 阅读 · 0 评论 -
质数数量的求解
质数(prime number)又称素数,有无限个,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。原创 2021-12-04 15:00:54 · 497 阅读 · 0 评论 -
老实交代:怎么你的主函数里只有一条语句
读取两个文件里的内容,通过计算得出每位学生的平时成绩。并计算出每位学生的总成绩降序排序。根据班级人数计算出班级的A,B,C等级的人数及相应的人员成绩信息!!!原创 2021-11-30 00:04:52 · 376 阅读 · 2 评论 -
手机批发业务—产品选购
每天一小时励志作业,励志成为卷中王中王手机批发业务—产品选购原创 2021-11-21 15:48:25 · 1730 阅读 · 0 评论 -
构造Strudent类,根据姓名查询出总成绩
类数组初始化CMyclass[] arr = new CMyclass[3] 初始化三个元素的数组,每个元素都是 CMyclass 实例。注意:这个语句初始的是数组,而不是三个数组元素的对象实例!数组初始化后,每个元素的值为null。要初始化CMyclass[] arr的每个元素,还必须:arr[0] = new new CMyclass();arr[1] = new new CMyclass();arr[2] = new new CMyclass();原创 2021-11-06 22:35:19 · 234 阅读 · 0 评论 -
解决div层叠时的空间问题和白边或者黑边以及浮动定位问题
解决div重叠时的空间问题,盒子重叠,显示覆盖现象原创 2021-10-21 17:29:50 · 1286 阅读 · 0 评论 -
递归法判断素数
递归法判断素数原创 2021-10-12 09:35:53 · 3469 阅读 · 2 评论 -
一页纸懂了基本的动态规划
简单三步搞定动态规划之青蛙跳台阶原创 2021-08-14 23:31:02 · 115 阅读 · 0 评论 -
0-1背包问题
有n个物品有各自的体积和价值,现在给容量的背包,如何让背包里装入的物品具有 最大的价值总和原创 2021-06-12 16:53:24 · 129 阅读 · 0 评论 -
更相减损术求最大公约数
算法思想: 用较大的那个数减去较小的那个数,再用减数和差中,较大的那个减去较小的那个,重复这个过程,直到减数和差相等.减数就为最大公因数.#include <stdio.h>#include <stdlib.h>int fun(int a,int b){ if(a==b){ return b; }else{ while(a!=b){ if(a>b) a = a-b; else b = b-a; } return b;原创 2021-05-25 18:49:52 · 1079 阅读 · 0 评论 -
广度优先搜索算法BFS
定义循环队列void BFS(AdjList *g,int vi){ int i,v; int Queur[MAX],front=rear=0;//定义循环队列 EdgeNode *p; printf("(%d,",vi); printf("%c)",g->adjlist[vi].data); visited[vi] = 1; rear = (rear+1)%MAX;/*尾指针后移并且将vi入队*/ Queur[rear] = vi; while(front != rear){原创 2021-05-23 22:14:19 · 186 阅读 · 0 评论 -
深度优先搜索算法DFS
递归算法结合上篇邻接表存储图int visited[20] = {0};void DFS(AdjList *g,int vi){ EdgeNode *p; printf("(%d,",vi); printf("%c) ",g->adjlist[vi].data); p = g->adjlist[vi].firstedge; visited[vi] = 1; // 全局数组标记被访问过 while(p!= NULL){ if(visited[p->adjvex] ==原创 2021-05-23 22:12:23 · 112 阅读 · 0 评论 -
图的邻接表算法
邻接表是图的一种顺序存储与链式存储的结合的存储方式。他包括两种结点结构,顶点表和边表。顶点表的结点结构由顶点域和指向第一条邻接边的指针域。(建议多读几遍熟悉逻辑)边表结点由邻接点域和指向下一条邻接边的指针域构成。也就是以下结构体的嵌套** ↓ **#define MAX 100typedef char VertexType;typedef struct node{/*定义边表结点*/ int adjvex;//邻接点域 struct node *next;//指向下一个邻接点域的指针域原创 2021-05-23 11:08:31 · 1647 阅读 · 1 评论 -
将顺序二叉树存储序列转化为链式存储序列-c语言
将顺序二叉树存储序列转化为链式存储序列- 题目描述:将给定顺序二叉树存储序列转换为链式二叉树存储序列显示char data[13] = {‘0’,‘A’,‘B’,‘C’,‘0’,‘D’,‘E’,‘F’,‘0’,‘0’,‘G’,‘H’,‘0’,‘I’}题解思路:首先理解二叉树的顺序存储结构原理,首先根节点的编号(下标)为1的是根节点,左孩子下标为2i,右孩子是2i+1。在二叉树的链式存储中是按照先序输出的序列输出的,那么思路一:二叉树的先序输出序列(包括‘0’)就是链式的输入输入序列。思路二原创 2021-05-16 17:22:25 · 2956 阅读 · 0 评论 -
图的邻接矩阵算法
无向图的邻接矩阵是关于左上右下对角线对称的,有向图不一定对称先得理解矩阵描述的图,或者明白图的矩阵描述概念。图的邻接矩阵存储结构#define MAX 100typedef struct{ char vexs[MAX]; //顶点表 int arc[MAX][MAX];//邻接矩阵,也就是边的关系表 int numVertexes,numEdges;//图中的定点数和边数 }MGaph;根据邻接矩阵的定义,可得到建立图的邻接矩阵算法。算法描述:首先得到图的顶点数和边数、然后按照顶.原创 2021-05-15 08:31:16 · 3051 阅读 · 1 评论 -
青蛙跳台阶
一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法。题解分析:当n等于1的时候,只需要跳一次即可,只有一种跳法,记f(1)=1;当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=2;当n等于3的时候,他可以从一级台阶上跳两步上来,也可以从二级台阶上跳一步上来,所以总共有f(3)=f(2)+f(1);同理当等于n的时候,总共有f(n)=f(n-1)+f(n-2)(这里n>2)种跳法。根据前面的三点要素步骤描原创 2021-05-14 20:19:59 · 111 阅读 · 0 评论 -
牛牛学递归-阶乘案例
学习递归,首先得了解递归;递归的三大要素明确你这个函数要干什么:对于递归,我觉得很重要的一个事就是明白这个函数的功能是什么,他要完成一件什么事,而这个就看你怎么来定义了。也就是说,不管函数里面是什么代码,而是先明白你这个函数要用来干什么。//假设做一个求N的阶乘的递归函数int fun(int N){ //…………内容不管 return /******/;}/*现在我们就定义了这个函数,并且明白这个函数的功能*/寻找递归结束条件:其实递归啊,就是在函数内部代码中再次调用原创 2021-05-06 22:43:36 · 1067 阅读 · 7 评论 -
矩阵的列向右移动n个单位
将矩阵的列向右移动b个单位问题描述:……原始矩阵……1 2 34 5 67 8 9请输入右移的列数:1……向右移1列的矩阵……0 1 20 4 50 7 8思路:矩阵的列的转移要从所开始列最右端开始移动 ,右端的一列先转移到最大的移动列位置保存,就不会被覆盖 。其余列补零即可。代码描述:#define N 3void fun(i原创 2021-05-06 10:02:05 · 1213 阅读 · 0 评论 -
顺序串(3)— KMP模式匹配算法-1(补充)
补充上一篇“串”笔记博文:字符串的朴素模式匹配算法低效在哪?主串是S=“abcdefgab”,匹配串T=“abcdex”用前面的朴素模式匹配算法的话,前5个字母两串完全相等,直到第六个时‘f’与‘x’不相等:再按照这个算法的话,结合上图流程,我们会知道其实T串“abcdex”的首字母‘a’与之后面的‘bcdex’中的任何一个字符均不相等(KMP算法的关键思想),那你想‘a’不与自己后面的子串中的任意一个字符相等,那么对于T中的‘a’则不可能与串S中的第2位到第5位的字符相等。那么这个朴素模式原创 2021-05-02 09:51:43 · 187 阅读 · 0 评论 -
二叉树的创建与基本操作
二叉树的性质我就不多说了,毕竟是笔记,直接上一点干货(代码操作)根据二叉树的性质,建立一个二叉树存储结构。typedef char DataType;/*二叉树存储结构类型*/ typedef struct tonde{ DataType data; struct tonde *lchile,*rchile;//左孩子,右孩子指针}BT; 创建一个二叉树,按二叉树带空指针的先序依次输入(解释:因为在创建时我要从根结点开始建立,并且返回这个树根结点,“树高万丈不忘根,人若辉煌不忘本嘛”原创 2021-04-28 23:38:15 · 1654 阅读 · 0 评论 -
字符串中有多少个回文子串。
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”算法思路:求一个字符串中有多少个回文子串,子串必须是连续的,子序列可以不连续,那我定义dp[i][j]:表示字符串s从下标i到j是否是回原创 2021-04-27 21:39:42 · 2170 阅读 · 2 评论 -
删除有序数组重复项
双指针解删除有序数组中的重复项问题描述给你一个有序数组nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。解题思路: 因为数组是排序的,只要是相同的肯定是原创 2021-04-18 23:14:43 · 855 阅读 · 2 评论 -
链队列
一个链队列需要头尾指针才能确定,为了操作简单,在队头元素前附加一个头结点,指针初始化都指向头结点。链存储的类型#include <malloc.h>typedef int DataType;typedef struct qnode{//链队列存储类型 DataType data;//结点 struct qnode *next;//结点的指针域 }qnode,*Qnode;typedef struct queue{//结构体嵌套 Qnode front; Qnode .原创 2021-04-11 18:28:28 · 134 阅读 · 0 评论 -
循环队列
先进先出原则循环队列的存储类型#define MAXSIZE 8typedef int DataType;typedef struct{ DataType data[MAXSIZE]; int front;//指向队头 int rear;//指向队尾}SeqList;初始化void InitList(SeqList *list){ list->front = list->rear = 0;//初始化队列 printf("初始化成功\n"); }入队(尾.原创 2021-04-11 17:55:27 · 108 阅读 · 0 评论 -
顺序串(2)
插入子串操作int StrInsert(String *S,String *S1,int pos){//从第几位起插入 int i; if(pos>S->len+1){ printf("插入位置出现错误\n"); return 0; } if(S->len+S1->len > MAXLEN){ printf("两串长度超过存储空间\n"); return 0; }//以上考虑的是程序的健壮性 for(i=S->len-1;i>=.原创 2021-04-11 17:32:43 · 214 阅读 · 4 评论 -
打印下三角
#include <stdio.h>#define N 10int main() { int i,j,k; for(i=0;i<N;i++){ for(k=0;k<i;k++){ printf(" "); } for(j=0;j<2*N-1-2*i;j++){ printf("*"); } printf("\n"); } } 效果展示:原创 2021-04-10 16:59:17 · 203 阅读 · 0 评论 -
顺序串(1)
顺序串的存储结构/*顺序串的存储结构 */ typedef struct{ char chars[MAXLEN];//储存字符数组 int len;//存储串的实时长度 }String;创建顺序串为什么不用scanf呢,因为scanf函数读到空格的时候就会结束输入,但是在串的定义中,空格也是一个字符。读者可自行测试下列用例:char array[10]; scanf("%s",array); rintf("%s",array);/*串创建的操作*/ void Creatstr.原创 2021-04-10 16:50:01 · 253 阅读 · 0 评论 -
栈(顺序栈)
栈:last in first out作为一种特殊的线性表,他只能在栈顶进行插入和删除元素通过一个指向栈顶的变量来记录栈顶元素位置#define MAXLEN 100typedef int DataType;typedef struct { DataType data[MAXLEN]; int top;//top 为指向栈定元素所在位置 }SeqStack;初始化让top指针与数组下标对应,那么他在空栈的时候可以为-1;void InitStack(SeqStack *L){.原创 2021-04-01 09:41:48 · 148 阅读 · 0 评论 -
数字字符串转int型
算法思想:将单个的字符提出来减去‘0’,因为printf("%d",'7'-'0');这样就会产出一个int类型的7,;再通过循环相加即可得到一个整型数字;#include <stdio.h>long fun(char *str){ if(str == NULL){ return 0; } long a = 0; while(*str != '\0'){ a = a*10 + *str-'0'; str++; } return a;} int mai.原创 2021-03-25 15:36:26 · 744 阅读 · 1 评论 -
java的基本数据操作之输入、输出
java使用预定义的Scanner类的对象实现用户键盘输入的数据那么。在使用之前需要导入,Scanner隶属于java.util包,使用给该类就需要import语句导入程序中package 基本数据操作;/*数据的输入和输出*/import java.util.Scanner;public class Test_1 { public static void main(String[] args) { Scanner val = new Scanner(System.in);/*创建Sca.原创 2021-03-23 21:16:32 · 502 阅读 · 2 评论 -
单链表——所有操作集合
单链表,插入,删除,访问原创 2021-03-21 22:18:24 · 342 阅读 · 3 评论 -
C语言——冒泡排序法
冒泡排序法(详介)1、冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1.1 算法描述1、比较相邻的元素。如果第一个比第二个大,就交换它们两个;2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;3、针对所有的元原创 2021-03-21 10:49:47 · 397 阅读 · 0 评论 -
线性表的链式存储
单链表:一种逻辑连续但物理地址不一定连续的线性存储结构;多多读读书上的对单链表的文字性描述;typedef int DataType;typedef struct linkList{ DataType data; //数据域 struct linkList* next; //指针域 }LinkList,*List;包括data数据域和next指针域;List 相当于 struct linkList * ,指针类型;链表也分带头结点的链表和不带头结点的链表;通常用一个“头指针”来原创 2021-03-20 21:34:20 · 314 阅读 · 0 评论 -
线性表的顺序存储
线性表的顺序存储你好! 这是我第一次使用博客记录我学习的生活,废话不多说,在你基本了解C语言和或者对数组,指针,结构体有比较好的一个掌握的话,那么你学习第一章后,理解一下顺序表概念,就从阿牛理解的角度阐述和操作这个顺序表(静态)。下面展示我的 相关代码片。1、顺序表类型的定义#include <stdio.h>#include <stdlib.h>#define SIZE 100typedef int DataType;typedef struct { DataT原创 2021-03-17 22:59:17 · 474 阅读 · 0 评论