基本的数据结构
基本的数据结构(基础)
- 栈:先进后出,例如倒一杯水,先倒到杯子里的水在最下面,所以在喝的时候是从上面的开始喝,最先倒进去的水反而最后喝掉
- 队列:先进先出,例如一个长廊的展厅,先进去的人先参观,参观完之后从长廊的尽头的出口先出去了
- 数组:数组的基本特点是:查询快,增删慢。
查询快:因为数组的下标,只要下标就能很快的查找的元素
增删慢:因为数组是长度固定的,所以要进行增删的时候,需要进行复制操作,重新复制一个新的数组,在把原数组的元素存进去。
增加:创建新数组:长度是元素数组.length+1
删除:创建新数组:长度是元素数组.length-1
这里可以查看ArrayList集合的源码,ArrayList的底层实现就是一个数组
- 链表:链表的基本特点是:查询慢,增删快
查询慢:因为链表是利用一个类似指针的概念,由上一个元素指向下一个元素,所以在查询的都是,都是从第一个元素开始查询。
增删快:因为他这个指针是指向下一个元素
增加:先把增加位置的上一个元素指向位置记录下来,然后把上一个元素指向新增的元素,新增的这个元素指向上一个元素指向的元素
删除;把删除元素的指向给到上一个元素的指向下一个元素的位置
- 树:树状结构:有一个根目录有多个分支,分支下又有多个分支
这个类似于图书馆,图书馆中有多个分类:经济,文学等等;文学也会有散文,诗歌小说等,小说可能也分为,都市,修仙等
图书馆:相当于根目录
文学,经济:相当于根目录的分支
散文,诗歌,小说:就是文学的分支
都市小说,修仙小说:就是小说的分支
二叉树:每一个目录的分支不能大于2
就相当于图书馆,你只能有文学和经济两个分类,别的多了就不不是二叉树了。
二叉树的好处:他的查询特别快
二分查找:每次取中间查找,每次查询操作都能将一半数据给查询过。
- 链表: 单向链表,只有一条链子,不能保证数据的顺序
双向链表,双向链表,有一个链用于记录顺序,它是有序的
本人是个刚入职的小菜鸡,写下来只是一些随笔,用来自己回顾,很多东西不一定正确,只是我当下自己的理解,请各位大神,有错误的地方可以指出来哈。

浙公网安备 33010602011771号