树 - 哈夫曼树

哈夫曼树是一种用于数据压缩的树形结构,通过构建最优二叉树来实现高效的编码和解码。 在构建哈夫曼树的过程中,首先需要统计待编码数据中每个字符的出现频率。然后,将每个字符及其频率创建为一个叶子节点,并将它们组成一个节点集合。 接着,从节点集

zhanxuewei zhanxuewei Published on 2024-04-24

线性表 - 链表的理解

链表是一种常见的线性表数据结构,与数组不同,链表中的元素在内存中不是连续存储的。 链表由节点(Node)组成,每个节点包含数据元素和一个指向下一个节点的指针。 链表具有动态大小和灵活插入、删除的特点,因为节点间通过指针连接,无需移动其他元素。 常见的链表类型有单向链表、双向链表

zhanxuewei zhanxuewei Published on 2024-04-24

线性表(散列) - 哈希表

哈希表是一种基于散列思想的线性表数据结构,它通过哈希函数将关键字映射到表中的位置,实现高效的插入、删除和查找操作。 哈希表的特点如下: 哈希函数:哈希表通过哈希函数将关键字映射为哈希值,并根据哈希值确定元素在表中的位置。好的哈希函数能够最大程度地减少冲突,即不同的关键字映射到相同的哈希值。 数组存储

zhanxuewei zhanxuewei Published on 2024-04-24

线性表 - 栈和队列

栈和队列是常见的线性表数据结构。 栈采用后进先出的原则。最后插入的元素将第一个被删除或访问。 栈主要有入栈和出栈两个操作。入栈将元素添加到栈的顶部,而出栈从栈的顶部移除元素,并返回该元素的值。 栈在函数调用和递归、括号匹配、浏览器前进和后退等场景中得到广泛应用。比如函数调用和递归中,每个函数的参数、

zhanxuewei zhanxuewei Published on 2024-04-24

线性表 - 数组和矩阵

当谈到线性表时,数组和矩阵是两种常见的数据结构。 数组(Array): 数组是有序的元素集合,可以通过索引来访问和操作其中的元素。它是最简单、最基本的数据结构之一。数组的特点包括: 连续存储:数组中的元素在内存中是连续存储的,这样可以通过计算偏移量来快速定位元素。 相同类型:数组中的所有元素必须具有

zhanxuewei zhanxuewei Published on 2024-04-24

什么是BASE理论?

BASE(Basically Available、Soft state、Eventual consistency)是基于CAP理论逐步演化而来的,核心思想是即便不能达到强一致性(Strong consistency),也可以根据应用特点采用适当的方式来达到最终一致性(Eventual consist

zhanxuewei zhanxuewei Published on 2024-04-24

分布式锁有哪些的实现方案?

资:12-25K 岗位:中高级开发工程师 一、

zhanxuewei zhanxuewei Published on 2024-04-24

什么是分布式事务?

分布式事务是相对本地事务而言的,对于本地事务,利用数据库本身的事务机制,就可以保证事务的ACID特性。 ACID 而在分布式环境下,会涉及到多个数据库。

zhanxuewei zhanxuewei Published on 2024-04-24

分布式事务有哪些常见的实现方案?

分布式事务:在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务 一、2PC: 2PC,两阶段提交,将事务的提交过程分为资源准备和资源提交两个阶段,并且由事务协调者来协调所有事务参与者,如果准备阶段所有事务参与者都预留资源成功,则进行第二阶段的资源提

zhanxuewei zhanxuewei Published on 2024-04-24

什么是seata?

Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。 1.1 Seata的三大角色 在 Seata 的架构中,一共有三个角色:

zhanxuewei zhanxuewei Published on 2024-04-24
Previous Next