"数据": 数据是信息的载体
"程序": 数据结构+算法=程序
"数据类型": 分类数据、确定数据元素存储空间
"数据结构":数据结构是定义存储和组织数据的一种数学模型、数据结构是数据之间的相互关系和组织形式、Data Structure
数据结构包含: 数据的逻辑结构、数据的存储结构、数据的相关运算、
"数组":聚合数据类型、线性结构、顺序存储、相同类型数据元素的集合、Array
"数据元素":数据元素是数据的基本单元、也称 结点、记录、顶点. 一个数据元素可以由若干个数据项组成、
"数据项":是具有独立含义的最小标识单位、数据项也可称之为 字段、域、属性等.
"数据的逻辑结构":即数据元素之间的逻辑关系、Logical Structure
"数据的存储结构":即数据元素及其逻辑关系在计算机存储器中的表示形式、Storage Structure
"数据的相关运算":能够对数据施加的操作、数据运算的基础是数据的逻辑结构、每种逻辑结构都是相关运算的集合。数据运算包括、检索、插入、删除、更新、排序等
"线性结构":线性结构就是数据表各个结点之间具有线性关系、即一对一关系、数据元素呈线性分布、线性结构有且仅有一个开始结点和一个结束结点、线性结构所有结点最多只有一个前驱结点和一个后继结点。如: 栈、队列、串是线性结构
"非线性结构":非线性结构就是数据各个结点之间具有多个对应关系、非线性结构的一个结点有可能有多个前驱结点和多个后继结点、如: 广义表、树结构、图结构都是非线性结构
"基本数据类型"、其值不能分解、整数、浮点
"聚合数据类型"、其值可以分解为若干分量、用户自定义类型、数组、结构体、
"常见数据结构"、Array数组、Stack栈、Queue队列、Linked List链表、Tree树、Graph图、Heap堆、Hash散列表
"数据结构的存储方式"
"顺序存储"、Sequential
顺序存储是在一块连续的存储空间依次存放数据、把逻辑上相邻的结点存储在物理位置上相邻的存储单元里、结点之间的逻辑关系由存储单元的邻接关系体现、顺序存储方式也称顺序存储结构、一般采用数组、结构数组来描述
"链式存储"、Linked
链式存储不要求逻辑上相邻的结点物理位置上相邻、结点间的逻辑关系由附加的引用字段表示、一个结点的引用字段通常指向下一个结点的存储位置、链式存储方式也称链式存储结构、一般在原数据项中增加引用类型来表示结点之间的关系
"索引存储"、Index
索引存储方式是采用附加索引表的方式来存储结点信息的一种存储方式、索引表由若干索引项组成、索引存储方式中索引项的一般形式为:关键字、地址、关键字能够为一标识一个结点的数据项
稠密索引:每个结点在索引表中都有一个索引项、索引项的地址指示结点所在的存储位置
稀疏索引:一组结点在索引表中只对应一个索引项、索引项的地址只是一组结点的起始存储位置
"散列存储"、Hash
散列存储是根据结点的关键字直接计算出该结点的存储地址的一种存储方式
"线性表"
线性表中的数据元素具有相同的数据类型和长度
"顺序表"
顺序表是依次存放数据、只要知道顺序表的首地址及每个元素所占的存储长度、就可以知道每个元素(结点)的位置。
"顺序表结构"
顺序表结构、在插入或者删除结点时、往往需要移动大量的数据、如果表比较大、有时比较难分配足够的连续存储空间、导致内存分配失败、而而无法存储。
"链表结构"
链表结构动态分配存储空间、可以根据需要动态申请所需的内存单元。
链表结点都包含两部分内容:数据部分、地址部分(引用部分)
"数据部分"、保存的是该结点的实际数据信息
"地址部分"、保存的是下一个结点的地址信息
链表结构由于采用了引用来指示下一个数据的地址、因此链表结构在逻辑上相邻的结点在内存中并不一定相邻、逻辑相邻关系通过地址部分的引用变量来实现。
链表结构带来的最大好处便是结点之间不要求连续存放、因此保存大量数据时、不需要分配一个连续的内存存储空间、用户可以动态分配结点的存储空间、当删除结点时、给结点赋值null、释放其占用的内存空间。
"栈"
栈是一种特殊的线性表、遵循后进先出原则(LIFO)、仅允许在表的一端进行插入和删除运算。
顺序结构栈、链式结构栈
只有栈顶元素可以访问、两个基本操作 入栈Push、出栈Pop、
"入栈"、将数据保存到栈顶的操作、"出栈"、将栈顶的数据弹出的操作
"队列"
队列是一种特殊线性结构、遵循先进先出原则(FIFO)、仅允许在一段进行插入在另一端进行删除运算。
顺序结构队列、链式结构队列、