自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高阶数据结构之红黑树

红黑树红黑树和AVL树的应用场景基本重叠(凡是能用AVL树就可以用红黑树,反之亦然);现实中红黑树用的更多红黑树特征:是一个二叉“平衡”搜索树红黑树中的每一个结点,标注颜色或红(0)或黑(1)根如果存在,则根必须是黑色的叶子(不是我们平时理解的叶子,而是平时叶子的孩子(null))是黑色的红色结点不能和红色结点相邻(父子关系)node是红的,则node.left/node.right/node.parent一定是黑色红黑树中,从根到任意叶子(null),这些路径上,

2020-09-27 21:30:02 360 1

原创 高阶数据结构之AVL树

AVL树的插入实现AVL树是二叉平衡树,即在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。1. 搜索树二叉搜索树特征:任取树中的结点,要求结点的左子树中的所有key全部小于结点的key结点的右子树中的所有key全部大于结点的key1.前置约束基本没有2.compare(TreeMap的key或者treeSet的元素,必须具有compare的能力(Comparable OR Comparator))3.搜索树时间复杂度最坏情况下是O(n)——(最坏情况,退化成单

2020-09-27 21:05:42 472

原创 数据库MySQL基础知识1

数据库数据库是长期存储在计算机内 、有组织、可共享的大量数据的集合数据库特征:1.数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,易扩展性2.被各种用户共享3.可永久存储在计算机内关系模型关系的描述称为关系模式R(U,D,DOM,F)R:关系名U:组成关系的属性名集合D:U中属性的域DOM:属性向域的映像集合F:属性间的依赖关系MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MyS

2020-09-06 23:37:57 291

原创 软件测试基础概念

1.什么是软件测试验证软件是否满足用户的需求2.什么是需求满足用户的期望或者正式文档(标准,规范,合约)所需要的条件或者权能,包括用户需求和软件需求用户需求 一般指甲方(用户)提出的需求,比如我现在想吃饭软件需求 是由用户需求转化而来的,比如厨师要搞清楚我想吃什么东西。它是是测试人员进行测试工作的依据,也是判断程序是否符合要求的依据。3.什么是BUG(1)正式文档存在,并且合理的条件下,软件的功能和文档不符合,叫软件的缺陷(2)当且仅当用户的需求存在并且合理的情况下(根据用户心情改变手机壳的

2020-09-05 02:45:54 220

原创 网上聊天室开发思路

网上聊天室设计思路平时经常性的使用聊天软件如QQ,微信,或是游戏里各个区的公共频道,于是突发奇想,想要自己搞一个简易版聊天项目,所以现在开搞起来。需求分析1.想要进行聊天,势必需要有人才能聊起来,因此需要用户,且用户可以注册,登录(注册用户,打开主页,看到登录页面)2.登录成功之后,就可以进入主页面3.主页面显示现在用户关注的频道列表,即关注之后,才可以在此频道发言。4.点击其中一个频道之后,就可以在此频道发消息5.在频道中还可以看到其他人的发言,即公共消息群内人均可以看到6.当用户退出,在

2020-09-03 23:25:35 3014 1

原创 网上聊天室测试

网上聊天室测试测试顺序:单元测试、集成测试、系统测试、验收测试等测试用例测试用例分别从界面、功能、兼容性、易用性、安全性、性能等方面进行分析待补充!!

2020-08-28 18:18:12 1048

原创 个人博客测试

个人博客项目测试测试顺序:单元测试、集成测试、系统测试、验收测试等测试用例测试用例分别从界面、功能、兼容性、易用性、安全性、性能等方面进行分析单元测试:针对系统最小的模块进行测试(使用白盒测试) 单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试测试阶段:编码后或者编码前(TDD)测试对象:最小模块测试人员:白盒测试工程师或开发工程师测试依据:代码和注释+详细设计文档测试方法:白盒测试测试内容:模块接口测试、

2020-08-28 17:21:04 1302

原创 String,StringBuilder和StringBuffer的区别

String:不可变,String+的操作,底层是通过StringBuilder对象.append()操作实现的,返回的是new,String内部是由final修饰的字符数组,只能赋值一次,一经定义就不可修改。但存在变量的字符串+操作,会生成多个对象,效率查,且占用资源(空间)高。StringBuilder:可以改变,是线程不安全,但效率比较高;StringBuilder的append返回的是this,append方法拼接,所以返回对象还是原来的对象,地址并未改变StringBuffer:可以改变,

2020-08-26 12:06:55 474

原创 排序3——不稳定的排序

选择排序**选择排序:**每次从无序的区间选出一个最大的(或者最小的)元素,插入到无序区间的最后(或者最前),重复选择插入,直至全部待排序的都进行插入操作,既排序完毕。//时间复杂度O(N^2)class Solution { public int[] sort( int[] nums) { for(int i=0;i<nums.length-1;i++){ //无序区间:[0,nums.length-i) //有序区间:

2020-08-25 17:04:47 374

原创 Session和Cookie

Session和Cookie通常作用在用户登录(用户验证登录)功能,接下来详细介绍Session和Cookie的作用原理,以及他们之间的区别:什么是Session:Session原理流程图:session 是客户端和服务器会话过程中,服务器代码生成sessionid,然后分配的一块储存空间,保存sessionid+用户数据,并且返回sessionid。客户端在向服务器请求访问敏感url时,会在url中携带sessionid,而服务器会解析请求数据sessionid,根据 sessionid 获取出会

2020-08-24 20:23:19 191

原创 GET和POST方法的区别

GET和POST方法的区别GETPOST后退按钮/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)书签可收藏为书签不可收藏为书签编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded或multipart/form-data。为二进制数据使用多重编码历史能被缓存不能被缓存对数据长度的限制有限制,当发送数据时,GET方法向URL添加数据,而URL的

2020-08-24 10:41:22 174

原创 http状态码

部分http状态码整理http状态码 是由三个十进制数字组成,第一个十进制数字定义状态码的类型,后两个数字没有分类的作用。http状态码共分为5中类型。分类分类描述1**信息,服务器收到请求,需要请求者继续执行操作2**成功,操作被成功接受并以完成请求3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误...

2020-08-23 16:19:22 321

原创 排序2——稳定的排序

计数排序(鸽巢排序)计数排序:有20个鸽子,有10个窝,在每个鸽子身上编了号,且每个鸽子经过训练之后,都能飞回到对应自己身上编号的窝中。白天把鸽子都放出去遛弯,(鸽子无序)等晚上鸽子回来,从窝中再看鸽子,这二十只鸽子就有序了。缺点:鸽子身上的编号,只能集中在一段数据之内(如集中在0~K中)。如果编号过于松散,则此种族排序方法效率不高。计数排序题class Solution { public int[] countSort( int[] nums) { if(nums=

2020-08-23 15:22:36 164

原创 排序1——稳定的排序

排序**排序:**就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作(默认为升序排序)。通常意义上的排序,都是指的原地排序(in place sort)。算法分类: 按是否稳定,常见的十大排序可分为稳定的排序,和不稳定排序:稳定性:原序列中,arr[i]=arr[j]的情况下,若元素arr[i]在arr[j]的前面,且在排序之后,arr[i]仍然在arr[j]的前面。既排序不改变相同元素的相对位置。不稳定:与稳定性质相反,在排序之后,不能保证arr[i]仍..

2020-08-21 19:25:22 291

原创 大整数排序

[java]题目描述:对N个长度最长达到1000的数进行排序输入描述:输入第一行为一个整数N,(1<=N<=100)接下来的N行每行有一个数,数的长度范围为1<=len<=1000。每个数都是一个正整数,且保证不包含前缀0输出:可能有多组数据,对于每组数据,将给出的N个数从小到大进行排序,输出结果,每个数占一行。看到了1~1000,肯定long是不够用的,只能再想办法,比如BigInteger。而从小到大的输出,则treeset可以进行自动的从小到大输出,且时间复杂

2020-05-10 01:37:05 274

原创 IDEA左下角services不见了怎么办

小白踩坑记:今天因为要配置tomcat,结果发现有重名的,然后手抖把services删了,删的时候自信满满。(os:删了肯定就没了,待我重新操作一番,再把tomcat重新引进去,它就又出现了,稳的,肯定没问题),然后重新引完,点了apply之后发现,它没出来TAT,于是又开始苟苟的找解决方式。解决方式很简单:view——》Tool Windows——》Services点完左下角Servic...

2020-05-08 16:41:36 6737

原创 Tomcat无法启动 一闪而过

有时候明明已经成功启动过tomcat,而且环境变量之类的也已经配置完成,但在双击startup.bat时,程序还是启动不起来,令人头疼。这个时候就要去搞明白启动不起来的原因了。1.用记事本等打开startup.bat,在其后加上"pause",用于查看命令窗口,这样程序就会将启动不起来的原因打在窗口上。2.如果看到的是这样的提示:则其表明的是,你已经启动了一个Tomcat,再去启动第二...

2020-05-08 00:30:10 506

原创 恢复进程操作

今天因为设置默认浏览器设置不了,所以决定去删掉整个文件夹,结果手误,通过任务管理器把文件夹里一个进程结束掉之后,桌面没了?对,整个桌面都黑了,就只有任务管理器还亮着,当场傻眼,然后找了一圈才找到了解决方法。1.把任务管理器打卡:快捷键ctrl+alt+delete当然如果你和我一样整个桌面黑得只剩任务管理器,这一步可以不管。2.点击文件——》运行新任务3.把explorer进程重新启动...

2020-05-07 20:39:38 5856 2

原创 java二叉树的遍历

二叉树遍历二叉树遍历:按照某种规则对二叉树中的每个节点进行操作(例如:打印节点中的内容||给节点中的值域+1),并且每个节点只遍历一次。*如果要遍历一棵二叉树,实际只需要将根节点+根的左子树+根的右子树NLR:前序遍历(Preorder Teaversal也叫先序遍历)——访问根结点的操作发生在遍历其左右子树之前。根节点——》根的左子树——》根的右子树LNR:中序遍历(Inorde...

2020-05-06 02:12:06 219

原创 牛客 替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer str1=new StringBuffer(); ...

2020-05-05 12:38:22 187

原创 牛客 二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:public class Solution { public boolean Find(int target, int [][] array) { //从右上往左下查找 ...

2020-05-05 12:30:52 175

原创 java 树与二叉树的基本概念

树树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成的具有层次关系的集合。特点:每个结点有零个或多个子结点没有父亲结点的结点称为根结点每一个非根节点有且只有一个父结点除了根节点之外,每个子结点可以分为多个不相交的子树树是递归的。根节点+子树=树如果树中有n个结点,则一定有n-1条边。概念结点的度:一个结点含有的子树的个数称为该结点的度;如上图左二,...

2020-05-05 11:55:21 329 1

原创 Java 树的表示形式

树的表示形式:1.孩子表示法孩子表示法: 是指二叉树在保存时,结点既要保存值域,也要保存孩子的地址优点:查找某个结点的孩子非常方便缺点:查找其双亲困难2.双亲表示法双亲表示法: 结点中既要保存值域,也要保存结点双亲的地址优点:找某个结点的双亲非常方便缺点:找节点孩子结点不方便3.孩子双亲表示法孩子双亲表示法: 结点中既要保存值域,也要保存结点双亲和孩子的地址4.孩子兄弟表示法...

2020-05-04 00:35:23 989

原创 java ArrayList的简易实现

ArrayList的简易实现ArrayList 的部分接口:接口的实现:public class ArrayList { private Object[] elementData; private int size; public int size(){ return size; } public boolean i...

2020-05-03 17:31:12 200

原创 java ArrayList和LinkedList区别

ArrayList和LinkedList区别共同点:(1)ArrayList和LinkedList都实现了List接口。(2)都是一种线性的数据结构。(3)底层代码都是泛型。(4)都是java集合框架提供的结构。不同点:(1)底层结构ArrayList:底层结构为动态类型的顺序表LinkedList:双向不带头结点的链表(2)创建时的默认值ArrayList:ArrayLis...

2020-05-03 17:13:33 520

原创 java 队列的简易版实现

队列的实现1.使用链表实现队列利用链式结构的头删和尾插class Node{ int val; Node next; Node(int val,Node next){ this.val=val; this.next=next; } Node (int val){ this(val,null); }}public cl...

2020-05-02 20:55:55 260

原创 Java 栈的简易版实现

栈的实现1.利用顺序表实现栈尾插+尾删可以模拟入栈和出栈的操作public class Stack<E>{ private E[]array=(E())new Object[100]; private int size=0;//栈中存储的个数 public void push(E value){ if(100==size){ return } ...

2020-05-02 20:01:13 199

原创 java 队列和栈的区别

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

2020-05-02 14:32:38 1022

原创 JAVA关于包

包包(package) 是组织类的一种方式。使用包是为了包装类的唯一性,而包的作用就相当于文件夹。如何导入包中的类使用直接在主函数中创建public class Test{ public static void main(String[] args){ java.util.Data=new java.util.Data(); //在主函数内使用java...

2020-03-18 15:52:14 223

原创 java链表3

双向链表双向链表的特点具有三个域:data域(保存节点数值)prev(保存当前节点的前驱)next(保存当前节点的后驱)在java的集合框架库中LinkedList底层实现就是无头双向链表。部分双向链表的操作1.头插法public void addFirst(int data) { ListNode node = new ListNode(data); if...

2020-03-08 23:38:03 176

原创 C语言函数3

函数递归递归定义:程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于: 把大事化小递归的必要...

2020-03-08 18:05:14 365

原创 C语言函数2

函数函数链式访问把一个函数的返回值作为另外一个函数的参数。#include <stdio.h>#include <string.h>int main(){ char arr[20] = "hello"; int ret = strlen(strcat(arr,"bit")); printf("%d\n", ret); return...

2020-03-08 17:23:09 261

原创 C语言函数1

函数维基百科对函数的定义为:子程序在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram,callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏...

2020-03-07 22:44:24 346

原创 c语言指针3

函数指针函数指针数组 :数组是一个存放相同类型数据的存储空间。函数指针数组,就是把函数的地址存到一个数组中。函数指针数组的定义 :int (*parr1[10])()//parr1先于[]结合,说明parr1是数组,数组的内容就是int (*)()类型的函数指针函数指针数组的用途 :转移表#include <stdio.h>...

2020-03-07 20:44:19 341

原创 java链表2

链表2无头单向非循环链表部分功能实现2:打印单链表的data域://不带参public void display() { ListNode cur = this.head; while (cur != null) { System.out.print(cur.data+" "); cur = cur.next; } Sys...

2020-03-06 16:09:11 146

原创 java创建Exercise12_15.txt

创建Exercise12_15.txt编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件,使用文本i/o将随机产生的100个整数写入文件,文件中的整数由空格键分开,从文件中读回数据并以升序显示数据。 import java.util.*; import java.io.*; public class Exercise{ public s...

2020-03-06 14:50:01 2317 3

原创 java链表1

链表链表的概念以及结构链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用连结次序实现。链表的种类:单向、双向带头、不带头循环、非循环链表的实现无头单向非循环链表部分功能实现头插法public void addFirst(int data) { ListNode node = new ListNode(data); if(t...

2020-03-06 14:42:15 163

原创 java读取整数

读取整数并显示和编写一个程序,提示用户读取两个整数,然后显示他们的和。程序应该在输入不正确时提示用户再次读取数字。 import java.util.Scanner; import java.util.inputmismatchexception; public class add { public static void main(sting[]args){ ja...

2020-03-05 21:34:30 3440

原创 java顺序表

线性表线性表:线性表(linear list) 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储 时,通常以数组和链式结构的形式存储。常见的线性表: 顺序表、链表、栈、队列、字符串…顺序表顺序表: 基于数组来实现顺序表的属性: usedSize、数组...

2020-03-05 21:21:25 296

原创 C语言指针2

指针字符指针在指针的类型中,字符指针表示方式char*一般使用:int main(){ char ch='w'; char *pc=&ch; *pc='w'; return 0;}不常见: int main() { char* pstr = "hello world"; printf("%s\n", pstr); return 0...

2020-03-04 16:31:52 205

空空如也

空空如也

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

TA关注的人

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