链表学习(1)
来源:互联网 发布:万网域名cname解析 编辑:程序博客网 时间:2024/06/06 00:59
1、广义表LS=(a1,a2……an)非空,则a1是LS表头,其余元素组成的表(a2,……an)称为LS表尾。
非空广义表的表头是一个元素,可以是原子也可以是一个子表,而表尾则必定是子表。
Eg:LS(a,b),表头为a,表尾是(b)而不是b。
2、Class java.util.ArrayList:
元素在集合中有序,指的是元素插入过程中记录了元素的插入顺序。
ArrayList就是动态数组,是Array的复杂版本,提供如下好处:
1) 动态增加和减少元素
2) 实现了ICollection和IList接口
3) 灵活的设置数组的大小
数组大小指定之后是不可变的,集合是可变的。
List中元素可以重复,Set不可重复。
ArrayList的存储结构是线性的,动态分配内存,有序的,可以重复,优点是可以随机访问快
ArrayList是线程不安全的,不需要线程同步。
ArrayList和vector是类似的:
1) 两者都是基于索引,内部有一个数组支持
2) 两者都维护插入的顺序
3) 两者都允许null值
不同之处在于
1) ArrayList是不同步的,而vector是同步的,所以ArrayList更高效,不会过载
2) ArrayList更加通用,可以使用Collections工具类轻易获取同步列表和只读列表,当需要在迭代的时候对列表进行改变,一个使用CopyOnWriteArrayList。
3、解析XML时,需要检验节点是否闭合,如必须有与之对应,用栈数据结构实现比较好。
栈的常见应用:浏览器历史记录,Android中的最近任务,Activity的启动模式,CPU中栈的实现,Word自动保存,解析计算式,解析xml/json
XML匹配就是形如左右括号的匹配。
4、线性表(a1,a2……an)以链接方式存储时,访问第i个位置元素的时间复杂性为O(n)
分析:元素在链表的位置为i意味通过遍历执行i次,则i<n,可以知道时间复杂度为O(n)
时间复杂度指的是一个数量级的概念,i只是单纯的一个位置。
5、二维数组是其数组元素为线性表的线性表。
6
- 链表学习(1)
- 链表学习(1)
- 链表学习(1)
- 数据结构之链表学习(1)
- 字符串学习学习(1)
- 链表学习(2)
- 链表学习(3)
- 链表学习(4)
- 链表学习(5)
- 链表学习(一)
- 链表学习(6)
- 数据结构学习记录连载3(链表的学习)
- 寒假自主学习——动态链表(1)
- linux内核学习准备工作-链表回顾(1)
- 数据结构学习笔记(1)---单向链表
- 学习总结:机器学习(1)学习资料汇总
- 【Android学习笔记】Service学习(1)
- Android 4学习(1):学习路线图
- 游戏与生活
- 80端口被占用,apache启动
- Threading
- <纯干货-2>GAN学习视频-part4
- stm32 unknown target connected 和 ST-LINK USB communication error错误
- 链表学习(1)
- Android之Service使用解析
- 连接池的作用
- java多线程之线程通信
- Android兼容性测试的一些坑
- Lenet、Alexnet 、VGG、 GoogleNet、ResNet模型
- test
- cas协议时序图
- Linux 的centOS下开启.htaccess的支持(去掉php后缀访问)