- 博客(31)
- 收藏
- 关注
原创 还在手工画UML类图?来逆向工程带你解放劳动力
本次使用的软件是starUML,用它来根据Java代码快速生成类图。跟着图来就行,注意starUML只支持jdk1.3,对于高版本jdk的新特性可能会出问题,但是生成类图是够了。点击close去找到自己对应数据库的类...
2020-06-21 00:56:47
283
原创 UML快速入门(StarUML)
目录UML简介:UML共有10种图:UML中的关系主要包括:StarUML基本的使用:用例图(Use Case Diagram):类图(Class Diagram):对象图(Object Diagram):时序图(Sequence Diagram):活动图(Activity Diagram):状态图(Statechart Diagram):协作图(Collaboration Diagram):包图(Package Diagram):组件图(Componen
2020-06-14 08:45:34
8574
原创 C++指针的那些痛点(二)
指针作为C++语法体系中最难学习的部分,在实际的使用中很容易出现问题,本篇文章为大家梳理了一下指针的那些坑,希望可以帮助到大家,如果在文章中发现问题,也请评论留言,让我及时改正。C++指针示例:#include<iostream>using namespace std;int main(){ int a = 112; float b = 3.14f; int* d = &a; // &a就是int* , d存的是a的地址 float* e = &am.
2020-06-13 10:20:13
388
原创 C++程序的存储区域
代码和数据在C++程序中的存储C++程序的区域划分#include<iostream>using namespace std;int a = 0; //(GVAR)全局初始化区 int* p1; //(bss)全局未初始化区 int main() //(text)代码区 { int b = 1; //(stack)栈区变量 char s[] = "abc"; //(stack)栈区变量 int*p2 = NULL; //(.
2020-06-11 11:57:24
334
原创 C和C++之字符串
目录字符串变量:字符串常量:字符串常见操作:缓冲区溢出问题字符串操作问题:首先我们来了解C和C++语言中,字符串分为字符串变量与字符串常量。字符串变量:字符串会自动在最后补上'\0'用来作为结尾标志,如果指定字符串数组的大小,要在原本字符串长度上加1。如“helloworld”长度为10,但是要申请长度为11的空间,不然会报错。#include<iostream>using namespace std;int main(){ char ..
2020-06-09 08:48:23
166
原创 C++之字符串数组与字符指针
1.字符串的指针表示:char* pStr = "helloworld"; 2.char[]和char*的区别:地址和地址的存储信息; 可变与不可变;首先我们来理解可变与不可变这个概念,先来看个例子:#include<iostream>using namespace std;int main(){ char strArr[] = {"helloworld"};// 字符串变量 char* pStr = "helloworld"; // 字符串常量
2020-06-08 18:06:01
897
原创 C++中的补码
在计算机底层中,只可以进行加法运算,所谓的补码就是通过加法来表示减法。下面先来了解一些简单的概念:补码的计算方式:此方法是计算机实际内部的计算方式,先将二进制最左边的数前面添加一个负号,然后计算权重,后面的按照正常计算方式即可。这种方法是应该是大学里面常见的计算方法,但是不是很符合数学方面的计算,因为需要作区分。U开头表示无符号数,T开头表示有符号数。8、16、32、64分别表示二进制的位数。二进制为了方便表示十六进制,四位二进制代表一位十六进制。...
2020-06-07 11:14:42
4470
原创 Python之高阶函数中的闭包(第二更)
这是胖同学第二篇关于Python高阶函数用法的博客。对于函数基础不太强的同学,建议先去看我第一篇关于函数的知识讲解,第一篇直通车:https://blog.csdn.net/weixin_43574446/article/details/105534447多看多练多思考,大家要好好加油呀!废话不多说,开始闭包的学习吧!学习闭包主要分为三部分:什么是闭包; 如何创建闭包; 如何...
2020-04-22 11:01:35
101
原创 Python之函数三千问(基础篇)
函数定义格式:函数的内存分析:函数也是对象内存分为栈内存和堆内存,函数在定义时,栈内存中存储的是函数的地址,用来找到堆内存中的函数对象,既然函数是对象,那么函数肯定具有函数类的相关属性和方法,比如函数使用的局部变量、返回值、内部__doc__方法等。def test01(): """ 我是测试函数 """ print("*"*10)tes...
2020-04-20 17:14:23
380
原创 八大排序算法思路汇总
冒泡排序(Bubble Sort):对于一组无序的元素,从头到尾依次比较相邻两个元素的大小,如果前一个元素比后一个元素大(或小)的话,就交换两个元素的值,重复交换的过程,直到这组元素有序。选择排序(Selection Sort):对于一组无序的元素,第一次从arr[0]~arr[n-1]中选取最小值与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值与arr[1]交换,第n-...
2020-04-13 17:58:48
244
原创 线索化二叉树的创建和遍历
每当诞生新的数据结构时,一定要联系它对应的某一类问题。新的算法思路,不仅仅是解决问题,还要优化问题,提高程序效率,减少程序占用空间。下面,我们来引入一个问题,结合问题,体会什么是线索化二叉树。将数组 arr = {1,3,6,8,10,14} 构建成一颗二叉树时,结合下图,我们可以发现6,8,10,14这几个结点的左右指针,并没有完全的利用上,造成了一定空间的浪费,为了解决这个问题,我们该...
2020-04-11 23:04:27
352
原创 二叉树的创建、遍历、查找、删除
我们最初学习数据结构的时候,肯定是先从线性结构和链式结构讲起,回顾一下他们的特点。线性结构以数组为例,它通过下标的方式访问元素,访问速度很快,但是当我们向数组中插入或删除某个元素时,会将插入位置的元素整体移动,从而造成效率低下。链式结构以单链表为例,它在插入或删除元素时,只改变链表的指向并且不移动元素,能够解决线性结构插入或删除元素效率不足的问题,但是当我们需要访问某个元素时,只能从单链表...
2020-04-10 23:10:30
503
原创 Python浅拷贝与深拷贝
浅拷贝:不拷贝子对象的内容,只是拷贝子对象的引用。深拷贝:会连子对象的内容也全部拷贝一份,对子对象的修改不会改变源对象。涉及到的内置函数:导入copy模块,copy():浅拷贝;deepcopy():深拷贝;下面我们假设对列表 a=[ 10, 20, [5,6] ] 来进行拷贝,[5,6]是子对象。浅拷贝:类似于树结构,只拷贝最上面的父根节点,不拷贝子根节点。深拷贝:把...
2020-04-09 09:41:00
1072
2
原创 Python中的序列结构
简单来讲,序列是一种数据存储结构,用来存储一系列数据。在内存中,序列就是一块用来存放多个值的连续存储空间,存储的是对象的地址,而Python中一切皆对象。常见的序列结构有:字符串、列表、元组、字典、集合。可以把序列看成是拥有序列结构数据类型的祖先,因此序列具有的特点,上述五种序列结构也有。字符串,列表,元组具有序列的所有功能,字典、集合序列具有部分功能,当然五种序列结构除了序列特点之外还拥...
2020-04-07 22:37:30
2749
1
原创 常用的四种查找算法总结
1.线性查找:线性查找常用于判断数组中是否有要查找的值,通过直接遍历数组,判断元素是否相等即可。由于线性查找很简单,直接贴代码。这里的代码只实现了,查找第一个元素的下标,如果找到所有元素可以定义一个集合,将return i;改成向集合中添加元素即可。public class SeqSearch { public static int seqSearch(int[]arr...
2020-04-05 18:30:37
2083
原创 教您搞懂归并排序
归并排序的算法原理:该算法采用经典的分治策略,分是指将问题分成许多小的问题,然后递归求解,而治则是将分的阶段得到的各答案"修补"在起,即分而治之。归并排序图解:图片如有侵权请联系本人合并相邻子序列:归并排序代码框架:public class MergeSort { /** * 分治算法:分阶段,将数组每个元素分开 * @param ar...
2020-04-03 14:54:37
111
原创 八皇后问题
八皇后问题的背景:1848年,国际西洋棋手贝瑟尔提出在 8x8 的国际象棋上摆放八个皇后,任意两个皇后不能处于同一行、同一列或者同一斜线上,问一共有多少种摆法? 思路分析:第1个皇后先放在第1行第1列, 第2个皇后放在第2行第1列,然后判断是否满足条件,不满足就继续放在第2行第3列、第2行第4列,直到在第2行的8列中找到合适的列位置, 第3~8个皇后与第2个皇后做法一样, ...
2020-03-28 12:11:46
359
原创 中缀表达式转后缀表达式
中缀表达式简单的讲就是我们平时看到的混合运算式,比如1+((2+3)x 4)-5,但是计算机运算这样的式子并不方便,我们就需要将中缀表达式进行转换,转换成适合计算机计算的式子称为后缀表达式,转换后的式子叫做后缀表达式。转换的过程有些复杂,我们来看一下大牛们发明的算法思路。中缀表达式转后缀表达式思路:我们还是以1+((2+3)x 4)-5为例来理解这个思路的具体工作流程:开始第...
2020-03-26 19:38:50
245
原创 写代码烧显卡,手速越快,烧的越厉害!
给大家推荐一款有趣的插件,增加大家写兼容代码的兴趣(手动滑稽), 先给大家来看效果图,是不是很炫酷呢?当然啦不仅仅支持烟花效果,还支持火焰、水珠等啦。第一步: 打开商店,准备安装插件第二步: 找到Power Mode,安装第三步:插件安装成功第四步:第五步:点击vscode左上角的文件------>首选项 ------>设置------>扩...
2020-03-25 11:08:54
1140
原创 在CSS中如何让盒子水平居中呢?
在CSS中如何让盒子水平居中是很常见的面试题,盒子居中是相对于父元素来说的,因此我们让盒子居中时,往往采用嵌套的方式,让父盒子套着子盒子 。在父子盒子嵌套下,让子盒子居中的方式:第一种方法:margin-auto,使用边框,但是margin使用会影响其他盒子的使用,不太推荐使用; 第二种方法:position,使用定位,子绝父相,再left:50%,margin-left:负的盒子宽...
2020-03-25 10:41:02
11795
原创 栈:综合计算器案例
问题背景:使用栈来模拟表达式计算,比如计算字符串String data = "13+10*3-2"的值。使用栈完成表达式计算的思路分析:遍历表达式,将字符串按照字符数组来操作; 如果遍历到的字符是数字,就直接压入数字栈中; 如果遍历到的字符是符号,判断操作符栈是否为空; 如果操作符栈为空:直接将该字符压入操作符栈中; 如果操作符栈不为空,那么判断操作符的优先级(自定义优先级);...
2020-03-24 22:20:58
96
原创 turtle库的简单使用
turtle库是python中的标准库工具,因此不需要pip安转,它拥有很强大的功能,可以绘制出各色各样的图案。turtle的使用:窗体布局; 坐标系:分为空间坐标和角度坐标; 画笔控制; 运动控制; 方向控制;窗体布局:turtle.setup(width,height,startx,starty) 宽、高、窗口左上角距离屏幕左边的距离,距离屏幕上面的距离,start...
2020-03-23 17:23:29
2091
原创 Python中列表、元组、字典的创建方式
列表的创建方式:使用[ ]; 使用list(); 使用range()创建整数列表; 使用推导式生成列表;使用[ ]:a = []a = [10,20,"hello world"]使用推导式生成列表:# 先将x从range中依次赋值,然后*2,从而生成列表a = [x*2 for x in range(5)]# 先将x从range中依次赋值,然后*2,如果x%9...
2020-03-22 08:39:59
3886
原创 数组模拟入栈出栈
首先对栈做一个简单的介绍,栈是一个先入后出的有序列表,可以看成特殊的队列,它限制了数据的插入和删除操作只能在线性表的同一端(栈顶)。栈的常见操作:插入:在栈中插入操作称为入栈,最先放入栈中的元素在栈底,最后放入的元素在栈顶。 删除:在栈中删除操作称为出栈,最先删除的元素在栈顶,最后删除的元素在栈底。入栈和出栈示意图:实现栈的思路:使用数组来模拟(单链表也是可以的); 定义...
2020-03-21 19:48:32
1079
原创 约瑟夫环问题
引入问题背景:设编号为1,2,3.....n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号序列。分析:如何表示围坐一圈?使用单向环形链表; 如何处理编号k? 如何处理m?单向环形链表的表示:由于是环形链表,不需要向单向或双向链表那样,头结点...
2020-03-21 10:47:25
146
原创 Python中变量和简单赋值语句使用
标识符的规则:区分大小写; 第一个字符必须是字母或下划线。其后是字母、数字、下划线; 不能使用关键字; 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法;help():查看python中的关键字;变量的声明和赋值:在赋值过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象,然后将这个对象地址赋值给左边的变量;a = 123变量的使用:变量在...
2020-03-20 16:03:05
481
原创 Java版队列
队列是一个有序列表,可以使用数组或者链表来模拟,这篇博客主要采用数组模拟,链表模拟将在后面展示。说起队列的特点,首先想到先进先出,先存入队列的数据先取出,后存入的后取出。话不多说直接上图根据队列的模拟图,我们可以总结出以下几点:队列的最大容量MaxSize; 队列输入、输出,分别从前后端来处理,需要两个变量记录front、rear 队空条件:front=rear=-1(有的...
2020-03-16 08:52:08
88
原创 循环队列
循环队列,主要是解决单队列浪费空间问题,当我们使用单队列执行出队时,出队后的位置空闲,但是没有办法存储新数据,造成了一定程度上的空间浪费,而循环队列就解决了这个问题。循环队列如何解决浪费空间问题呢?我们发现单队列主要是数组下标无法循环使用,我们让下标循环就好了呗。怎么让下标循环呢?这里用到一点小算法:取余。我们来看个图:图片下标有问题,懒得改了,大家将就着看吧。从图中我们看到几...
2020-03-15 13:53:51
786
原创 稀疏数组
说起稀疏数组应该是数据结构中比较简单的一部分,它常用于当数组中的大部分元素为0,或者为同一个值时,可以使用稀疏数组来保存该数组。常见的稀疏数组的处理方法:记录数组一共有几行几列,有多少个不同的值。我们以二维数组为例,将二维数组转换为稀疏数组,并将稀疏数组转为二维数组。二维数组变稀疏数组:遍历原始的二维数组,得到有效的数据个数sum。 根据sum创建稀疏数组sparseArr[su...
2020-03-14 17:36:54
89
原创 01.NPM的简单使用
NPM:Node Package Manager,JavaScript的包管理工具,类似于Java的maven。npm命令总结 node-v 查看已安装的node版本 npm-v 查看已安装的npm版本 npm init 初始化项目 npm init -y 采用默认信息初始化项目 npm install <Module ...
2020-03-13 15:49:24
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人