数据结构基本概念
数据结构基本概念知识总览
数据结构三要素逻辑结构
逻辑结构分为线性结构和非线性结构:线性结构:线性表,栈和队列非线性结构:树、图和集合物理结构(存储结构)
顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)
散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。数据的运算
施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。算法定义
解题方案准确而完整的描述。五个特征
有穷性:一个算法必须总在执行又穷步之后结束,且每一步都可在有穷时间内完成。(算法必须有穷,程序可以无穷)
确定性:算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。
可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
输 ...
乐观锁与悲观锁
1.悲观锁定义:
总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。在Java中,synchronized从偏向锁、轻量级锁到重量级锁,全是悲观锁。JDK提供的Lock实现类全是悲观锁。
手动加悲观锁:读锁:LOCK tables test_db read,释放锁:UNLOCK TABLES;写锁:LOCK tables test_db WRITE,释放锁:UNLOCK TABLES;读锁与写锁如果要更新数据,那么加锁的时候就直接加写锁,一个线程持有写锁的时候别的线程无论读还是写都需要等待;如果是读取数据仅为了前端展示,那么加锁时就明确地加一个读锁,其他线程如果也要加读锁,不需要等待,可以直接获取(读锁计数器+1)虽然读写锁感觉与乐观锁有点像,但是读写锁是悲观锁策略。因为读写锁并没有在更新前判断值有没有被修改过,而是在加锁前决定应 ...
JavaScript的三种弹出框:警告框、确认框、提示框
JavaScript的三种不同弹出框:警告框、确认框、提示框1、警告框:window.alert()当我们需要用户看到一些信息时,可以使用警告框,用户必须点击警告框上的【确定】按钮,才能继续操作。
函数参数为弹出框显示的内容。123456789101112131415<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>JavaScript的弹出框</title></head><body> <input type="button" value="弹出警告框" onclick="popup()"/> <script type="text/javascript"> function popup( ...
hexo部署报错 spawn failed
问题出现:123456err: Error: Spawn failed at ChildProcess.<anonymous> (D:\workplace\blog\node_modules\hexo-util\lib\spawn.js:51:21) at ChildProcess.emit (events.js:376:20) at ChildProcess.cp.emit (D:\workplace\blog\node_modules\cross-spawn\lib\enoent.js:34:29) at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12) { code: 128
常规解决办法:解决方法一:123# 第一个就是你的邮箱,第二个就是你的用户名git config --global user.email "2673065011@qq.com"git config --global user.na ...
微服务调用的数据库错误导致项目报错
今天早上刚打开项目,发现不能运行,本来以为是数据库的问题,但是后来王洁伟重启数据库服务并没有解决问题,然后直接走接口查询数据的也会报相同的错误,后来通过求助穆老师得知,是因为我们代码里的某一个微服务调用的数据库报错,然后导致项目报错。第一次遇见这种问题,在这记录一下。192.168.0.99这个ip下的2036端口号出现了问题。解决办法目前还理解不了,希望随着知识的积累以后可以明白。
Unable to resolve path [Excipients.qty], unexpected token [Excipients]的问题
后台报错上面报的是无法创建类的bean的错误,一开始以为问题出现在这,然后搜到的解决办法有两种,后来试了一下都不行然后后面报的错误是,Unable to resolve path [Excipients.qty], unexpected token [Excipients],然后搜了一下,可能是因为没有在sql语句中起别名的原因,后来起了个别名,然后就可以正常运行了。