自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构——队列

1、队列Queue定义队列是只允许在一端进行插入,在另一端删除的线性表。基本操作创、销:InitQueue(&Q):初始化队列DestroyQueue(&Q):销毁队列增、删:EnQueue(&Q, x):入队DeQueue(&Q, &x):出队查:GetHead(Q, &x):读队头元素其他常用操作:QueueEmpty(Q):判断队列Q是否为空2、顺序实现队列用顺序存储方式实现的队列#define Ma

2021-07-08 21:21:58 150

原创 数据结构——顺序栈与链栈

1、栈(Stack)(stack:一堆)定义栈是只允许在一端进行插入或删除操作的线性表重要术语:栈顶、栈底、空栈基本操作创、销:InitStack(&S):初始化栈DestroyStack(&S):销毁栈增、删:Push(&S, x):进栈Pop(&S, &x):出栈查:GetTop(S, &x):读栈顶元素其他常用操作:StackEmpty(S):判断一个栈S是否为空2、顺序栈用顺序存储方式实现的栈/

2021-07-08 15:00:02 261

原创 操作系统——进程同步

1、进程同步的概念进程异步性:各并发执行的进程以各自独立的、不可预知的速度向前推进。操作系统因此要提供进程同步机制,来协调进程之间的相互制约关系。2、进程互斥的概念临界资源:一个时间段内只允许一个进程使用的资源。临界区:进程中访问临界资源的代码段。也叫临界段。进程互斥指当一个进程访问某临界资源时,另一个想要访问临界资源的进程必须等待。为禁止两个进程同时进入临界区,同步机制应遵循:空闲让进:临界区空闲,允许请求进入临界区的进程立即进入忙则等待:当已有进程进入临界区,其他进程必须等待有限等待

2021-07-07 16:07:14 2776

原创 2020年408考研算法题

题目定义三元组 (a,b,c) 的距离 D=|a-b|+|b-c|+|c-a|。给定3个非空整数集合S1,S2,S3,按升序分别存储在3个数组中。请设计一个尽可能高效的算法,计算并输出所有可能的三元组 (a,b,c) 中的最小距离。例如S1={-1,0,9}, S2={-25,-10,10,11}, S3={2,9,17,30,41}。则最小距离为2,相应的三元组为 (9,10,9)题解暴力法,三层for循环代码...

2021-06-30 22:31:05 2238 1

原创 2019年408考研算法题

题目设线性表L=(a1,a2,a3,…,an-2,an-1,an)采用带头结点的单链表保存,链表中的结点定义如下:typedef struct node{ int data; struct node *next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L’=(a1,an,a2,an-1,a3,an-2,…)。题解分析题目要求将L重新排列,取第一个,再取倒数第一个,取第二个,再取倒数第二个,以此类推。单链表只有向后的指针,需要实

2021-06-29 22:28:20 1993

原创 数据结构—排序算法_选择排序

选择排序1、简单选择排序算法思想每一趟在待排序元素中选取关键字最小的元素加入有序子序列。n个元素的简单选择排序需要n-1趟处理算法实现//交换void swamp(int &a, int &b){ int temp = a; a = b; b = temp;}//简单选择排序void SelectSort(int A[], int n){ for(int i=0;i<n-1;i++){ int min=i; for(int j=i+1;j<

2021-06-25 08:34:02 117

原创 数据结构—排序算法_交换排序

冒泡排序1、算法思想从后往前(或从前往后)两两比较相邻元素的值,若为逆序,则交换它们,直到序列比较完。2、算法实现//交换void swap(int &a, int &b){ int temp = a; a = b; b = temp;}//冒泡排序void BubbleSort(int A[], int n){ for(int i=0;i<n-1;i++){ bool flag = false; for(int j=n-1;j>i;j--){

2021-06-24 08:40:06 159

原创 数据结构—排序算法_插入排序

插入排序1、算法思想每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。2、直接插入//直接插入排序void InsertSort(int A[], int n){ int i,j,temp; for(i=1;i<n;i++) if(A[i]<A[i-1]){ temp = A[i]; for(j=i-1;j>=0&&A[j]>temp;j--) //检查所有前面已排好序的元素 A[j+1].

2021-06-23 09:56:34 85

原创 2018年408考研算法题

题目给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4。题解分析遍历A数组,利用辅助动态数组,类似之前提到过的,元素值作为数组下标。第一个为0的值即是所求的最小正整数。代码int findmin(int A[], int n){ int *B = (int *)malloc(sizeof(int) * n); for(int i=0;i<

2021-06-22 20:19:15 806 1

原创 数据结构—二叉排序树

二叉排序树也叫二叉查找树(BST,Binary Search Tree)。性质:左子树结点值 < 根结点值 < 右子树结点值左子树和右子树又各是一棵二叉排序树中序遍历可得到一个递增序列1、二叉排序树的查找逻辑:若树非空,目标值与根节点的值比较;若相等,则查找成功;若小于根节点,则在左子树上查找,否则在右子树上查找。代码:typedef struct BSTNode{ int key; struct *BSTNode lchild, rchild;}BSTNode,

2021-06-22 14:32:08 279

原创 二叉树的基本算法

二叉链表存储结构typedef struct BTNode{ ElemType data; struct BTNode *lchild; struct BTNode *rchild;}BTNode;1、二叉树的遍历算法先序遍历void preorder(BTNode *p){ if(p!=NULL){ visit(p); preorder(p->lchild); preorder(p->rchild); }}中序遍历void inorder(BTNode

2021-06-21 20:33:52 94

原创 2017年408考研算法题

题目请设计一个算法,将给定的表达式树(二叉树)转换为等价的中缀表达式(通过括号反映操作符的计算次序)并输出。例如,当下列两棵表达式树作为算法的输入时:输出的等价中缀表达式分别为(a+b)*(c*(-d))和(a*b)+(-(c-d))。二叉树结点定义如下:typedef struct node{ char data[10]; struct node *left, *right;}BTree;题解分析重点:括号的安排1、中缀表达式左根右2、计算次序遍历左子树前加左括号,遍历右子

2021-06-20 21:04:55 1020 1

原创 2016年408考研算法题

题目已知由n(n≥2)个正整数构成的集合A={ak|0≤k<n},将其划分为两个不相交的子集A1和A2,元素个数分别是n1和n2,A1和A2中元素之和分别为S1和S2。设计一个尽可能高效的划分算法,满足|n1-n2|最小且|S1-S2|最大。题解分析题目要求:两个子集个数相近或相同,和的差值最大1、两个子集个数集合的个数偶数:两个子集元素个数相同奇数:两个子集元素个数差1,大集合多1个元素2、元素和的差值使两个集合的差值最大,对原集合进行从小到大排序,分为大集合小集合,这样差值

2021-06-19 21:41:44 1634 3

原创 2015年408考研算法题

题目用单链表保存m个整数,结点的结构为:[data][link],且|data|≤n(n为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中data的绝对值相等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。例如,若给定的单链表head如下:则删除结点后的head为:题解分析第三次考察带头结点的单链表。1、查找出绝对值相等的结点利用辅助数组,类似2013年的算法题,因为data≤n,故用元素值作为辅助数组下标。并且需要n+1个辅助空间。2、链表删除结点删除链表L

2021-06-14 12:46:44 795 1

原创 2014年408考研算法题

题目二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。给定一棵二叉树T,采用二叉链表存储。结点结构为:leftweightright其中叶结点的weight域保存该结点的非负权值。设root为指向T的根结点的指针,请设计求T的WPL的算法。题解分析1、二叉链表由于顺序存储的空间利用率低,二叉树一般采用链式存储结构。2、存储结构typedef struct BiTNode{ ElemType data; struct BiTNode *lchild

2021-06-12 19:00:09 483

原创 2013年408考研算法题

题目题解分析同2009年算法题,考察带头结点的单链表1. 结点结构typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*Linklist;2. 检查单词后缀由于共享相同后缀的存储空间,首先考虑单词长度问题,一定是从长单词的 长单词.len-短单词.len+1 的位置开始检查3. 比较后缀两个单词的链表的指针同时向右移动,进行比较,遇到不相同的直接跳出。代码typedef struct LNode{ E

2021-06-12 15:35:05 583

原创 2012年408考研算法题

题目假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间,例如,“loading”和“being”的存储映像如下图所示。设str1和str2分别指向两个单词所在单链表的头结点,链表结点结构为datanext请设计一个时间上尽可能高效的算法,找出由str1和str2所指向两个链表共同后缀的起始位置(如图中字符i所在结点的位置p)。题解分析同2009年算法题,考察带头结点的单链表1. 结点结构typedef struct LNode{ El

2021-06-10 20:18:41 1594

原创 2011年408考研算法题

题目一个长度为L(L>=1)的升序序列S,处在第[L/2]个位置的数称为S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数为11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。题解分析1. 升序序列首先,要将两个序列进行归并排序,使用函数Merge()。2. Merge()功能:将两

2021-06-10 14:36:36 974

原创 2010年408考研算法题

题目设将n(n>1)个整数存放到一维数组R中。试设计一个在时间和空间两方面都尽可能高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据由(X0,X1…Xn-1)变换为(Xp,Xp+1…Xn-1,X0,X1…Xp-1)。题解分析1. 创建int型数组R数组的创建有三种方式:①使用常量表达式指定数组维数 int array[5];②使用变量表达式指定数组维数。int n = 5;int array[n];③使用malloc()函数。int *a

2021-05-26 10:33:39 735

原创 2009年408考研算法题

题目已知一个带有表头结点的单链表,结点结构为datalink假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。要求:题解分析1. 带头结点的单链表首先,链表是一种线性表,在每一个节点里存到下一个节点的指针。其次,区分 头结点和头指针头结点:有时,在链表的第一个结点之前会额外增设一个结点,结点的数据域一般不存放数据(有些情况下

2021-05-25 15:08:55 496

原创 String常用方法

String字符串效果上相当于是char[ ]字符数组,底层原理是byte[ ]字节数组 --二进制。1、创建方法String str = "abc";String str2=new String("abc");2、获取public int length():获取字符串当中含有的字符个数,即字符串长度public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。public char charAt(int index):获取指定

2021-04-16 15:37:09 46

转载 html 各种好看的样式

https://www.html5tricks.com/category/html5-demo解压码 RJ4587

2021-04-11 10:37:51 997

原创 Java中方法next()和nextLine()

next()和nextLine()详解Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别:next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取;nextLine()吸取字符前后的空格/Tab键,回车键截止。简单说,next读到空格前,nextLine读回车即停简要样例: String s1=scanner.nextLine(); String s2=scanner.

2021-04-04 21:30:15 499 1

原创 使用Git和GitHub Desktop管理项目

配置全局变量查看用户名邮箱:1. git config user.name2. git config user.email配置用户名邮箱:1. git config --global user.name xxx2. git config --global user.email [email protected]这样你提交的远程分支就显示你的信息了。1. 个人使用:创建项目在项目文件夹中右键,选择Git Bash Here,打开git命令框,输入git init 即把当前的目录变成可以管理的git

2021-04-04 13:13:18 692

原创 练习算法的网站

1. HackerRankhackerrank上有很多算法题,难度从低到高,除此之外,还有各种算法和数据结构(甚至是SQL)的题。你可以直接在上面编写代码,直接运行并查看结果,还可以查看评论看看看其他人都是如何解题的。网站地址:https://www.hackerrank.com/2. TopCoderTopCoder是最早的程序设计比赛网站之一,其中就有算法挑战赛,你可以使用其代码编辑器在线进行操作。单轮比赛每月在特定时间进行几次,编码员相互竞争,根据分数和解题时间排名。在TopCoder上

2021-04-03 13:27:39 366

转载 SpringMVC中Controller中方法返回值类型

1、返回ModelAndView要求前端使用JSP页面,并使用JSTL标签,才可以匹配解析后端返回的数据后端代码package com.hxy.controller; import com.hxy.pojo.Order;import com.hxy.pojo.Product;import com.hxy.service.ProductService;import org.springframework.beans.factory.annotation.Autowired;import

2021-03-19 12:40:00 607

原创 MVC设计模式和三层架构

MVC设计模式经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器V–View视图 是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。M–model模型 是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。C–controller控制器 是指控制器接受用户的输入并调用

2021-03-09 20:56:42 3448 1

原创 GET和POST两种请求方法的区别

GET和POST是HTTP请求的两种基本方法form表单提交中的区别get是从服务器上获取数据,post是向服务器传送数据。get ->把 参数数据队列  加到 提交表单的action属性所指的 URL 中,值和表单内各个字段一 一对应。post->是通过HTTPpost机制,将 表单内各个字段与其内容 放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制...

2021-03-09 20:52:26 742

原创 Jquery 根据变量属性值 获取元素

var ipName="cores[1].controlIp";var portName="cores[1].controlPort"; var ip=$("input[name='"+ipName+"']").val();var port=$("input[name='"+portName+"']").val();错误示范:报错undefinedvar ip=$("input[name=ipName]").val();var port=$("input[name=portName

2021-02-23 21:32:29 1126

转载 官网下载Spring的jar包教程

嫌麻烦的链接在此https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframework/spring一、背景:Spring官网改版,把Spring相关产品放到了GitHub上托管二、步骤:(1)打开官网链接:https://spring.io/(2)找到Spring Framework(3)点击GitHub的logo链接(4) 在打开的GitHub中的下部找

2021-02-18 10:20:23 247

原创 搭建Mybatis开发环境

第一章、Mybatis框架开发的准备1.1、官网下载Mybatis框架https://mybatis.org/mybatis-3/zh/getting-started.html1.2、将下载的JAR包添加到Maven仓库打开cmd命令行窗口用maven命令将jar包移动到maven的本地repository中。mvn install:install-file -Dfile=jar包的位置(参数一) -DgroupId=groupId(参数二) -DartifactId=artifactId(参

2021-02-07 16:28:23 253

原创 IDEA的第一个Maven工程

创建第一个Maven工程遇到的各种问题上一篇文章已介绍过Maven本地仓库的配置,于是创建第一个maven工程遇到些许问题进行解决,在此基础上对于运用本地仓库,有了更深的理解。1、导入项目此次初步学习,借用别人的项目辅助学习,省略了一些步骤,但也有一些新问题。导入项目步骤:选中项目的pom文件,项目则导入成功1.1、导入后只显示pom.xml文件,其他项目结构都隐藏解决方法:点击project structure…–>Modules点击右上角+加号 --> import Mo

2021-02-02 14:54:32 199

原创 Maven本地仓库配置

maven 的工作需要从仓库下载一些 jar 包,如下图所示,本地的项目 A、项目 B 等都会通过 maven软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此 jar 包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。...

2021-01-29 09:31:58 1685

原创 Response文件下载案列

关于JavaWeb中Response的训练项目需求分析页面显示超链接点击超链接后弹出下载提示框完成图片文件下载案例分析超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框。任何资源都必须弹出下载提示框使用响应头设置资源的打开方式:content-disposition: attachment; filename=xxx步骤定义页面,编辑超链接href属性,指向Servlet,传递资源名称filename定义Servlet获取文件名称使

2021-01-22 20:24:42 133

原创 Request用户登录案例

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-01-22 14:26:09 992 1

空空如也

空空如也

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

TA关注的人

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