数据结构
文章平均质量分 87
Z5433523
这个作者很懒,什么都没留下…
展开
-
归并排序与统计排序
归并排序,其排序的实现思想是先将所有的记录完全分开,然后两两合并,在合并的过程中将其排 好序,最终能够得到⼀个完整的有序表。归并思想:大问题,拆分成小问题、而且要求每个小问题都是独立的。原创 2023-09-12 19:46:47 · 60 阅读 · 0 评论 -
堆排序详解
数据放到堆上 insert 怎么插入 能够满足堆属性。顺序存储 [i/2, i, 2i, 2i+1]最小值 找根节点 extract 调整 满足小顶堆。如果想更加详细了解堆排序,不妨可以看看STL源码剖析中的heap算法。n个数,申请n+1个节点,从1号索引开始存数据。堆特点:没有顺序,很方便找最大/最小值 TOP10。数据存放在一个堆上,任意的节点,都要满足小顶堆。堆:基于完全二叉树的特殊数据结构。操作: 插入数据 删除数据。原创 2023-09-11 17:33:13 · 37 阅读 · 0 评论 -
插入排序详解
插⼊排序算法是所有排序⽅法中最简单的⼀种算法,其主要的实现思想是将数据按照⼀定的顺序⼀ 个⼀个的插⼊到有序的表中,最终得到的序列就是已经排序好的数据。原创 2023-09-10 15:42:45 · 417 阅读 · 1 评论 -
图的概念及重要术语
在中,每个元素之间只有⼀个和⼀个。在树形结构中,数据元素之间是,并且每⼀层上的数据元素可能和下⼀层中多个元素相关,但只能和上⼀层中⼀个元素相 关。但这仅仅都只是⼀对⼀,⼀对多的简单模型,如果要描述多对多的复杂关系就需要图数据结构了!原创 2023-09-06 14:13:15 · 165 阅读 · 1 评论 -
并查集和哈夫曼树
并查集有两种常见实现思路查找效率:O(1)合并效率:O(N)查找效率:O(logN)合并效率:O(logN)原创 2023-08-30 08:45:42 · 84 阅读 · 1 评论 -
二叉搜索树和平衡树
如果他的左⼦树不空,则左⼦树上所有结点的值均⼩于它的根结点的值。若它的右⼦树不空,则右⼦树上所有结点的值均⼤于它的根结点的值。它的左、右树⼜分为二叉排序树。原创 2023-08-29 11:09:47 · 97 阅读 · 4 评论 -
树、二叉树、线索二叉树
树(Tree)是n(n≥0)个节点的有限集合T,它满足两个条件 :有且仅有一个特定的称为根(Root)的节点其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树, 并称为其根的子树(Subtree)。树的定义具有递归性,即“树中还有树”。二叉树是每个结点最多有两个子树的树结构。二叉树不允许存在度⼤于2的树。它有五种最基本的形态:二叉树可以是空集根可以有空的左子树或者右子树;左右子树都是空。只有左子树或者右子树的叫做斜树。原创 2023-08-25 08:22:30 · 159 阅读 · 1 评论 -
栈和队列的实现
栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为 “栈底”,当栈中没有元素时称为“空栈”。特点 :后进先出(LIIFO)。队列是一种特殊的线性表,特殊之处就在于它只允许在表的前端进行删除操作,在表的后端进行 插入操作。和栈一样,队列也是一种操作受到限制的线性表。进行插入操作的端称之为队尾,进行删除操作的端称之为队头。队列中没有队列的时候,称之为空队列。队列的数据元素,⼜叫做队列元素。原创 2023-08-21 10:28:07 · 238 阅读 · 1 评论 -
链式存储表
申请一个结构的头 存储数据的首地址,以及这个结构的其他参数。链式 物理上不连续 增加 元素逻辑的关系。在第二个位置上,进行插入操作时,如果索引指针指向第二个节点,无法进行后续操作。链式存储维护 表内容的首结点,首结点逐个寻找其他节点。一旦把节点的next赋新值,之前的下一个元素的关系,就断开。单链表中,一旦索引指针往前走一步,之前的元素就再也找不到。删除A元素,站在A元素的前一个元素上,才能删除A元素。链式存储的特点和核心操作逻辑。原创 2023-08-19 13:00:00 · 88 阅读 · 0 评论 -
数据结构基础概念和表的代码
数据类型是按照值的不同划分的。数据类型可以分为两类:(1)原子类型:是不可以再分解色基本类型,包括整型、实例、字符型等。(2)结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干个整型数组组成的。算法是求解特定问题的步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。原创 2023-07-28 16:04:11 · 89 阅读 · 1 评论