读书笔记8-《crazy java》

来源:互联网 发布:java sftp下载文件夹 编辑:程序博客网 时间:2024/06/05 05:43

数据元素之间的4类基本逻辑结构:
1. 集合:数据元素之间只有“同属于一个集合”关系
2. 线性结构:数据元素之间存在一个对一个的关系
3. 树形结构: 数据元素之间存在一个对多个的关系
4. 图状结构和网状结构: 数据元素之间存在多个对多个的关系

计算器在磁盘上通常有两种物理存储结构:
1. 顺序存储结构
2. 链式存储结构

顺序存储结构VS链式存储结构
1. 由于不必须按顺序存储,链表在插入、删除数据元素时比顺序线性表快得多,但是在查找一个节点或者访问特定编号的节点则比顺序线性表慢很多;
2. 链表可以克服顺序线性表预先知道数据大小的缺点,充分利用计算机的内存空间,实现灵活的动态管理;
3. 链表失去了数组随机存储的优点,同时增加了节点的指针域,空间开销比较大。

动态创建单链表的两种方式:
1. 头插法建表:该方法从一个空表开始,不断的创建新节点,将数据元素存入节点的data域中,然后不断地以新节点为头结点,让新节点不断指向原有的头结点;
2. 尾插法建表:该方法是将新节点插入到当前链表的表尾上,因此需要为链表定义一个引用变量来保存链表的最后一个节点。

双向链表是一种对称结构,克服单链表指针单向性的缺点,其中每个节点即可向前引用,也可向后引用,实现更方便地插入、删除数据。

线性表VS数组
1. 线性表的长度可以动态该表,数组的长度固定;
2. 线性表可以插入元素,数组无法插入元素;
3.线性表可以删除元素,数组无法删除元素,只能将指定元素赋为null,但各种元素依然存在;
4. 线性表提供方法来搜索指定元素的位置,数组没有;
5. 线性表提供犯法来清空所有元素,数组没有

0 0