
几种常见的重要数据结构总结
栈的表示
1. 数组
2. 链表(优点:无需指定大小,不存在栈溢出等情况的处理)
队列表示
1. 数组(构造成循环队列以提高空间使用效率)
2. 链表
二叉树 (满二叉树、完全二叉树、稀疏二叉树等)
1. 数组(二叉树按照层次编号,空缺的孩子结点也要保留编号,这使得当二叉树比较稀疏时,空间利用率很低)
2. 链表(二叉链表(三个域:左孩子,右孩子和结点的值),三叉链表(多一个父结点的指针,解决了找祖先结点困难的问题))
树
1. 广义表
广义表是一个n个表元素组成的有限序列,表元素或者是数据元素(atom),或者是子表(sublist),一个广义表的元素结构可以由3个域构成
第一个域标识该表结点是什么类型的结点(type=0,广义表专用的表头结点;type=1,数据结点;type=2,子表结点),第二个域是值域(如果是数据元素类结点,则是相应数据值,如果是子表则存放指向子表表头的指针),第三个域存放尾指针(type=0,空;type!=0,同一层下一个结点的指针)
2. 双亲表示
一个结点有两个域,data和parent域。可组织成连续存储单元形式(数组),或者链表形式。
3. 左子女右兄弟
一个结点有三个域,data,first child,next sibling。当然也可以组织成数组或者链表形式。
数组其实可以表示任意类型的信息,不同的解析方式产生不同的结果。
霍夫曼树、霍夫曼编码
霍夫曼树:带全路径长度最小的二叉树应是权值大的外结点离根节点最近的扩充二叉树(n个叶结点带权值)
Huffman Code是霍夫曼树在数据编码中的应用,解决数据的最小冗余编码问题,是数据压缩学的基础。
霍夫曼算法:
1. 问题:将权值为{W0,W1,...,Wn}的扩充二叉树构造霍夫曼树
2. 算法过程:
(1). 由给定的n个权值,构造具有n棵扩充二叉树的森林F,其中每棵树Ti只有一个带有权值Wi的根结点,左右子树为空。
(2). 重复以下步骤,直至F中只剩下一棵扩充二叉树,此即为霍夫曼树
①. 在F中选取两棵根结点权值最小的扩充二叉树,作为左右子树构造一棵新的二叉树,新树的根结点的权值为其左右子树根结点权值之和。
②. 在F中删去两棵二叉树
③. 将新二叉树加入F
图
图的存储表示
1. 邻接矩阵
2. 邻接表
图的遍历、连通性
1. 深度优先搜索(对应栈)DFS
2. 宽度优先搜索(对应队列)BFS
最小生成树(Minimum-cost Spanning Tree)
1. Kruskal算法(依次往图中加入最小权值且两个邻接点位于不同连通分量即不构成回路的边)
2. Prim算法(从某一顶点出发,选择与其关联的具有最小权值的边,将另一顶点加入到集合U中,以后每步从一个顶点在U中,另一个不在U中的各条边中选择权值最小的边,将其不在U中的顶点加入U中,直至所有顶点都在U中)
最短路径问题
1. Dijkstra算法 (图中没有负权值边)
2. Bellman-Ford算法(图中没有负权值路径)
活动网络
1. AOV(用顶点表示活动的网络,比如学生课程学习工程图)
拓扑排序问题
2.AOE
关键路径问题
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
评判两组数据与初始数据准确值的方法 在数据分析与研究中,我们常常会面临这样的情况:需要对通过不同方法、不同过程得到的两组 ...
2025-08-01通过 COX 回归模型诊断异常值 一、COX 回归模型概述 COX 回归模型,又称比例风险回归模型,是一种用于生存分析的统计方法。它能 ...
2025-08-01CDA 数据分析师报考条件详解:迈向专业认证的指南 在数据分析行业蓬勃发展的当下,CDA 数据分析师认证成为众多从业者提升专业 ...
2025-08-01K-S 曲线、回归与分类:数据分析中的重要工具 在数据分析与机器学习领域,K-S 曲线、回归和分类是三个核心概念与工具,它们各 ...
2025-07-31大数据时代对定性分析的影响 在大数据时代,海量、多样、高速且低价值密度的数据充斥着我们的生活与工作。而定性分析作为一 ...
2025-07-31CDA含金量分析 在数字经济与人工智能深度融合的时代,数据驱动决策已成为企业核心竞争力的关键要素。CDA(Certified Data Analys ...
2025-07-31SASEM 决策树:理论与实践应用 在复杂的决策场景中,如何从海量数据中提取有效信息并制定科学决策,是各界关注的焦点。SASEM 决 ...
2025-07-30SPSS 语法使用详解 在当今数据驱动的时代,SPSS( Statistical Package for the Social Sciences)作为一款功能强大的统计分析软 ...
2025-07-30人工智能对CDA数据分析领域的影响 人工智能对 CDA(Certified Data Analyst,注册数据分析师)数据分析领域的影响是全方位、多层 ...
2025-07-30MySQL执行计划中rows的计算逻辑:从原理到实践 MySQL 执行计划中 rows 的计算逻辑:从原理到实践 在 MySQL 数据库的查询优化中 ...
2025-07-29左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-29CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-29CDA数据分析师证书考取全攻略 一、了解 CDA 数据分析师认证 CDA 数据分析师认证是一套科学化、专业化、国际化的人才考核标准, ...
2025-07-29解析神经网络中 Softmax 函数的核心作用 在神经网络的发展历程中,激活函数扮演着至关重要的角色,它们为网络赋予了非线性能力, ...
2025-07-29解析 response.text 与 response.content 的核心区别 在网络数据请求与处理的场景中,开发者经常需要从服务器返回的响应中提取数 ...
2025-07-29鸢尾花判别分析:机器学习中的经典实践案例 在机器学习的世界里,有一个经典的数据集如同引路明灯,为无数初学者打开了模式识别 ...
2025-07-29用 Python 开启数据分析之旅:从基础到实践的完整指南 在数据驱动决策的时代,数据分析已成为各行业不可或缺的核心能力。而 Pyt ...
2025-07-29从 CDA LEVEL II 考试题型看 Python 数据分析要点 在数据科学领域蓬勃发展的当下,CDA(Certified Data Analyst)认证成为众多从 ...
2025-07-29CDA 数据分析师的工作范围解析 在数字化时代的浪潮下,数据已成为企业发展的核心资产之一。CDA(Certified Data Analyst)数据分 ...
2025-07-29解析 insert into select 是否会锁表:原理、场景与应对策略 在数据库操作中,insert into select 是一种常用的批量数据插入语句 ...
2025-07-29