【数据结构与算法】
文章平均质量分 68
数据结构与算法
王同学要努力
24届毕业生 计科专业
无论身处何方,陷于何地,都要向下扎根,向上开花,不负生活,不负自己!
展开
-
【408数据结构与算法】—树和二叉树(二十七)
树是n(n>=0)个结点的有限集。若n=0;称为空树若n>0;则它满足如下两个条件有且仅有一个特定的称为根的结点其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3……Tm.其中每一个集合本身又是一棵树,并称为根的子树。树是n个结点的有限集,显然,树的定义时一个递归的定义一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。1、每个节点最多有两棵子树,即不存在超过度为2的节点。2、二叉树的子树有左右之分,且左右不能颠倒。原创 2022-11-22 12:11:45 · 590 阅读 · 0 评论 -
【408数据结构与算法】—广义表(二十六)
广义表中的元素可以是原子也可以是子表,针对原子和子表可以分别设计不同的节点结构。由于广义表中的元素本身又可以具有结构,它是一种带有层次的非线性结构,因此难以用顺序存储结构表示,通常采用链式存储结构。an-1的哟选序列,其中每一个ai或者是原子,或者是一个广义表。其中:LS为表名,n为表的长度,每一个ai为表的元素。求表头GetHead(L): 非空广义表的第一个元素,可以是一个单一的元素也可以是一个子表。求表尾GetTail(L):非空广义表除去表头元素以外其他元素所构成的表,表尾一定是一个表。原创 2022-11-21 11:08:07 · 3805 阅读 · 1 评论 -
【408数据结构与算法】—数组和特殊矩阵的压缩存储(二十五)
数组的特点:结构固定,维数和维界不变数组的基本操作:初始化,销毁,取元素、修改元素值。一般不做插入和删除操作一般都是采用顺序存储结构来存储注意:数组可以是多维的,但存储数据元素的内存单元地址是唯一的,因此在存储数组结构之前,需要解决将多维关系映射到一维关系的问题。📢📢例:有数组定义:int a[5],每个元素占用4字节,假设a[0]存储在2000单元,a[3]地址是多少?若多个数据元素的值相同,则只分配一个元素值的存储空间,且零元素不占存储空间矩阵中非零元素的个数较少(一般小于5%)原创 2022-11-21 10:13:41 · 626 阅读 · 0 评论 -
【408数据结构与算法】—串和BF算法(二十四)
串(String):零个或多个任意字符组成的有限序列串中元素逻辑关系与线性表的相同,串可以采用与线性表相同的存储结构。原创 2022-11-20 13:58:27 · 466 阅读 · 2 评论 -
【408数据结构与算法】—基数排序(桶排序)(二十三)
基本思想:分配+收集基数排序也叫桶排序或箱排序,设置若干箱子,将关键字为k的记录放入第k个箱子,然后按序号将非空的连接。基数排序:数字是有范围的,均由0-9这是个数字组成,则只需设置十个箱子,相继按个、十、百……进行排序。C语言代码实现:二、基数排序算法分析时间效率:O(k*(n+m)k:关键字个数m:关键字取值范围为m个值空间效率:O(n+m)稳定性:稳定基数排序算法分析例如:10000个人按照生日排序原创 2022-11-19 19:40:48 · 359 阅读 · 1 评论 -
【408数据结构与算法】—归并排序(二十二)
归并排序示例整个归并排序仅需log2n趟关键问题:如何将两个有序序列合并成一个有序序列时间效率:O(nlogn)C语言代码实现:从上往下从下往上总结原创 2022-11-19 19:22:48 · 462 阅读 · 0 评论 -
【408数据结构与算法】—堆排序(二十一)
从堆的定义可以看出,堆实质是满足如下性质的完全二叉树,二叉树中任一非叶子结点均小于(大于)它的孩子结点C语言代码实现#include #include void HeapAdjust(int a [ ] ,int s,int m) //一次筛选的过程 {int rc,j;j原创 2022-11-19 18:48:13 · 491 阅读 · 1 评论