
数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
公众号小白学安全
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
1.数据结构概况
数据结构的概况前世今生由高德纳教授29岁时提出“算法”和“数据结构”的概念;早期的计算机被人们理解为数值计算的工具;数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。基本概念什么是数据数据——描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。注意:1、数据有两个特点 可以输入到计算机中; 能够被计算机程序处理 2、数据不仅仅包括整型、实型等数值类型,还包括字符及原创 2020-06-15 23:43:36 · 244 阅读 · 0 评论 -
2.线性表
线性表线性表的定义——零个或多个数据元素的有限序列线性表特点: 数据元素之间是有序的 数据元素之间是一对一的关系 有限性(线性表的数据元素个数是有限的) 注意:零个数据元素的有限序列被称为空表线性表的数据元素个数是有限的线性表的抽象数据类型ADT 线性表(List)Data 1、线性表数据元素是一个集合{a_1,a_2,a_3....,a_n},数据元素的类型 DataType(int,char,自定义) 2、前驱——除了第一个元...原创 2020-06-15 23:44:22 · 352 阅读 · 0 评论 -
3.链式存储结构的线性表——链表
数据结构的概况前世今生由高德纳教授29岁时提出“算法”和“数据结构”的概念;早期的计算机被人们理解为数值计算的工具;数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。基本概念什么是数据数据——描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。注意:1、数据有两个特点 可以输入到计算机中; 能够被计算机程序处理 2、数据不仅仅包括整型、实型等数值类型,还包括字符及原创 2020-06-15 23:25:06 · 520 阅读 · 0 评论 -
4.栈
栈定义——栈( stack)是限定仅在表尾巴插入和删除操作的线性表 允许插入和删除的一段称为栈顶(top),另一端称为栈底(bottom) 不放任何数据元素的栈称为空栈 特点 先进后出 后进先出 注意: 栈又被称为后进先出(Last In First Out)的线性表,简称LIFO结构 栈的插入操作,称为进栈,也称压栈、入栈(push) 栈的删除操作,称为出栈,也称为弹栈(pop) 栈的抽象数据结构栈的...原创 2020-06-15 23:30:42 · 133 阅读 · 0 评论 -
5.队列
队列定义队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表 队列是一种先进先出(First In First Out)的线性表 允许插入的一段称为队尾 允许删除的一段称为队头 特点 先进先出 后进后出 注意:队列是操作受限制的线性表队列的抽象数据类型队列顺序存储结构——使用顺序表普通队列: 使用数组保存队列元素 front:队头指针 rear:队尾指针 使...原创 2020-06-15 23:31:43 · 188 阅读 · 0 评论 -
6.树
树树——一对多的关系常见的树形结构:书本的目录、家谱、技能书、系统文件树等等定义 :树是n个结点的有限集结点个数为零的树称为空树任意一颗非空树中: n > 0 有且仅有一个特定的称为根的结点 非根结点可分为互不相交的有限集,每个集合本身又是一颗树,这些树称为根的子树 结点分类叶结点——有前驱结点,没有后继结点分支结点——有前驱结点也有后继结点,分支结点也称为内部结点树的基本概念树的“家谱图”...原创 2020-06-15 23:34:40 · 142 阅读 · 0 评论 -
7.二叉树
二叉树二叉树(Binary Tree)——是n(n >= 0)个结点所构成的集合,它或为空树( n = 0 );或为非空树,对于非空树T: 有且仅有一个称之为根的结点 除根以外的其余结点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身又是二叉树 二叉树的特点与树的异同二叉树的几种形态三结点二叉树的五种形态二叉树性质二叉树的链式存储结构三叉链...原创 2020-06-15 23:39:00 · 785 阅读 · 0 评论 -
8.哈夫曼树
哈夫曼树(最优二叉树)David Huffman教授1950年在MIT的信息理论与编码研究生班学习离开MIT后,来到加利福尼亚大学的计算机系任教1952年发明了哈夫曼编码权值——比例路径—— 从树中一个结点到另外一个结点之间的分支构成两个结点之间的路径;路径上的分支数量称为路径长度树的路径长度就是从树根到每一个结点的路径长度之和定义也称最优二叉树假设有n个权值{w1,w2,…,wn},构造一颗有n个结点的二叉树每个叶结点带权Wk,每个叶子的路径长度为lk,我们通常记做:带权路径长度原创 2021-06-20 14:14:40 · 264 阅读 · 0 评论 -
9.数据结构-图
图G 图G(graph)是一些点和线的集合。图中的这些点叫做顶点(VerTex)两个顶点的连线叫做边(Edges)图定义:图:Graph = ( V , E )V :顶点(数据元素)的有穷非空集合E :边的有穷集合无向图每一条边都是无方向的使用无序偶对(Vi , Vj )表示图-无向图有向图(Directed Graph)每一条边都是有方向的,又称为弧(arc)使用有序偶<Vi , Vj>表示图-有向图边的集合改为弧的集合完全图任意两个顶点都有一条边相连的原创 2021-06-20 14:15:17 · 126 阅读 · 0 评论 -
10.算法
算法描述解决问题的方法称之为算法定义算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作注意同一个问题可能会有很多种不同的算法没有通用的算法能解决所有问题特性有输入至少有一个输出有穷性确定性可行性、查找查找就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)**查找表:**由同一类型的数据元素(记录)构成的集合**关键字:**记录中某一个数据项的值,可用来识别一个记录**主关键字:**唯一标识数据元素原创 2021-06-20 14:15:45 · 150 阅读 · 0 评论