摘要:
当spring事务遇到对于不支持事务的语句的执行时,则提交事务。下面程序出错也不会进行回退。 解决方案 将不支持事务的语句执行放到一个方法中,方法上加上注解 @Transactional(propagation = Propagation.NOT_SUPPORTED) 该注解表示该方法的传播机制是不 阅读全文
摘要:
判断段落是否为标题需要获取段落的样式,样式可能基于某个样式,所以需要进行深度遍历,对深度遍历到的每个样式进行进行下面的判断逻辑。判断是否为标题,若是则停止遍历即可 一:判断是否有outlineLvl属性若有则为标题 二:判断样式名称是否是“heading 1”、“heading 2”、“headin 阅读全文
摘要:
POI 获取colSapn(跨列数)rowSapn(跨行数)和思路 POI最外层的封装并没有提供获取colSpan和rowSpan的方法,但是在ooxml包里则提供了对于docx文档底层open xml的操作的封装,利用这个包里提供的类可以获取到docx文档大部分属性。 一:获取colSpan 获取 阅读全文
摘要:
删除 首先,搜索要删除的节点。 情况一:如果该节点左子节点是nil,删除后让右子节点顶替该节点的位置即可。 情况二:如果该节点右子节点是nil,删除后让左子节点顶替该节点的位置即可。 情况三:如果该节点左右节点都不为nil,则查询其后继节点,即右节点中最小的节点,让其顶替该节点,颜色设置为被删除节点 阅读全文
摘要:
在详解红黑树前要先需要了解旋转操作, 旋转 不改变颜色,仅仅改变节点的位置,来做出调整二叉树的结构,使其达到相对平衡 插入 找到要插入的位置,将其插入,并设置成红色,(该节点插入后一定是叶子节点,具体可看二叉搜索树的插入)。一位新插入节点是红色,所以可能存在父节点也是红色,违反了性质4,而且如果新插 阅读全文
摘要:
红黑树首先要满足二叉搜索树的性质。 然后要满足以下五大性质。 每个节点或是红色,或是黑色 根节点总是黑色 每个节点nil是黑色的 (感觉这条可有可无) 如果一个节点是红色,子节点一定是是黑色 每个节点的黑高都相等 标准的红黑树 省略NIL节点的红黑树 注:目前没有发现NIL节点的必要性 阅读全文
摘要:
插入: 普通的插入操作,会导致B树的结构损坏,所以B树是将新添的关键字填加到现有的节点,但是这样有一个问题,就是B树的节点有关键字的数量限制(最多不能超过2t-1个关键字),所以当我们遍历搜索插入位置的时候我们需要顺便将满的节点(孩子数目为t、关键字数目为t-1)分裂,所以在B树的插入操作的核心就是 阅读全文
摘要:
B+树结构: B+树是作为B树的变种的一种数据结构,B树的数据保存在每个节点中,包括关键字,但是B+树的数据都保存在叶子节点中,内部节点起索引的作用。 她的叶子节点也很有意思,它的叶子节点内部是有序的链表,同时包含指向下一个叶子节点的指针,也就是说她的所有叶子节点的从左到右完全可以当作一个有序单向列 阅读全文
摘要:
B树得设计思路很吊,基本思路是搜索树(最简单的搜索树-二叉搜索树),B树在搜索树的基础上如何脱颖而出呢,它是从计算机磁盘与内存的io的设计中找到可以加快搜索的方法。一个程序要读取一个数据,如果数据是在内存中,那么读取的时间是ns级的,如果是在磁盘中则是ms级的,所以B树的设计思路是减少磁盘读取的次数 阅读全文