??本文参考内容是Java数据结构与算法第二版(已经比较老的内容),以及数据结构第三版内容。如果观看者又更好的资料请联系Qq:1101165230,我将及时更新。
数据结构 | 优点 | 缺点 |
---|---|---|
数组(顺序存储)线性 | 插入快,如果知道下标,可以非常快地存取 | 查找慢,删除慢,大小固定 |
有序数组 | 比无序的数组查找快 | 删除和插入慢,大小固定 |
栈 | 提供后进先出方式的存取 | 存取其他项很慢 |
队列 | 提供先进先出方式的存取 | 存取其他项很慢 |
链表 | 插入快、删除快 | 查找慢 |
二叉树 | 查找、删除(如果树保持平衡)、插入快 | 删除算法复杂 |
红-黑树 | 查找、插入、删除都快(树总是平衡的) | 算法复杂 |
2-3-4树 | 查找、插入、删除都快(树总是平衡的。类似的树对磁盘存储有用) | 算法复杂 |
哈希表(散列存储) | 如果关键字已知存取极快。插入快 | 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分 |
堆 | 插入、删除快,对最大的数据项存取很快 | 对其他数据项存取慢 |
图 | 对现实世界建模 | 有些算法慢且复杂 |
?? 1. 有一个唯一的开始节点(第一个节点);
?? 2. 有一个唯一的结束节点(最后一个节点);
?? 3. 除结尾元素外,其他元素都一个后继节点;
?? 4. 除开始元素外,其他元素都有一个前驱节点;
??树(二叉树)、图(网);
??一个节点元素可能有多个前驱或多个后继节点;
??分类二:集合结构、线性结构、网状结构、图形结构
??线性:一对一结构
??网状:一对多
??集合: 唯一的、无序的、确定的
??图形:多对多
??? 许多将要讨论到的算法直接适用于某些特殊的数据结构。对于大多数数据结构来说,都需要知道如何
名称 | 大小(以位计) | 取值范围 |
---|---|---|
boolean | 1 | true或false |
byte | 8 | -128~+127 |
char | 16 | ‘000’~‘’ |
short | 16 | -32768~+32767 |
int | 32 | -2147483648~+2147483647 |
long | 64 | -9223372036854775808~+9223372036854775807 |
float | 32 | 约10的-38次方~10的+38;7位有效数字 |
double | 64 | 约10的-308次方~10的+308;15位有效数字 |
??? 数据结构是指数据在计算机内存空间中或磁盘中的组织形式。
??? 正确选择数据结构会使程序的效率大大提高。
??? 数据结构的例子有数组、栈和链表。
??? 算法是完成特定任务的过程。
??? 在Java 中,算法经常通过类的方法实现。
??? 一些数据结构的用途是作为程序员的工具:它们帮助执行算法。
??? 其他数据结构可以模拟现实世界中的情况,例如城市之间的电话线网。
??? 数据库是指由许多类似的记录组成的数据存储的集合。
??? 一条记录经常表示现实世界中的一个事物,例如一名雇员或一个汽车零件。
??? 一条记录被分成字段。每个字段都存储了由这个记录所描述事物的一条特性。
??? 一个关键字是一条记录中的一个字段,通过它可以对数据执行许多操作。例如,人事记录可以通过 LastName 字段进行排序。