发表于: 2018-01-13 18:45:32
1 615
今日完成:
在删除公司接口中缺失了逻辑,删除了公司但没删除这个公司下的职位,添加上了,现在我的接口又是完美的接口了,看了数据结构,了解了linklist,栈,和一部分的二叉树。
明日计划:
demo是不可能demo的,等前端写完使用接口报问题,没问题就继续看数据结构。
成果:
linklist中的字段有 size(数据长度)、modCount(操作计数器)、begainMarker(最前节点)、endMarker(最后节点),除了那些基本public的方法外,还有一个内嵌类node,称为节点,就是这些节点在存放数据,其中node类中有三个字段,泛型data(存放数据),prev(前驱节点引用),next(后继节点引用),所以他实际上就是一个无限延长的引用链,通过前驱后继的方式来连接,每一个节点只和前后节点有关,所以在增加删除其中一个节点时只需要把删除节点的前驱节点的后继节点和后继节点的前驱节点引用修改一下就行了,文字解释很绕,其实就是把一根线中间剪一段,然后只需要在断口绑上就能用了,不像array那样还要遍历后面的节点都向前或向后移一位。其中这个是线程不安全的,所以modCount就是用来计算操作次数,比如多线程循环操作共一千次,他有可能最后modcount只有900+,但他还有个单例内置计数器,两者不相等就会报异常。
栈其实很简单,就是单向链表或者是没有index的arraylist,就是先进后出,是线程安全的,结构和array差不多,实际数据类型的就是数组,但是只支持对头部操作,其中还学了中缀表达式和后缀表达式,解释起来长篇大论,反正目前我理解的就是可以通过栈来构成计算器的表达式,而且很绕,也没太看明白,只希望将来面试能提一口装个逼。
队列就是先进先出的栈,像排队,没啥说的。
二叉树数据构成和链表差不多,就是内嵌类放数据,但是有父子关系,但是只有子节点知道自己父亲是谁,父节点不知道自己孩子是谁,每个节点有左节点引用和右节点引用(假设两边都有放数据),其中比自身大的放右节点,比自身小的放左节点,寻找二叉树最大的树就从父节点中一直往右节点找,最小就反过来。
emm,迭代器为什么开好像是因为他是一次遍历,而for实际隐藏着不知一次遍历,好像是每次都是通过下标来查找数组,每查一次平均遍历2/size,这个书看过就忘了,有毒。
禅道:
http://task.ptteng.com/zentao/my-task.html
评论