基本的数据结构

基本的数据结构(基础)

  1. 栈:先进后出,例如倒一杯水,先倒到杯子里的水在最下面,所以在喝的时候是从上面的开始喝,最先倒进去的水反而最后喝掉
  2. 队列:先进先出,例如一个长廊的展厅,先进去的人先参观,参观完之后从长廊的尽头的出口先出去了
  3. 数组:数组的基本特点是:查询快,增删慢。

查询快:因为数组的下标,只要下标就能很快的查找的元素

增删慢:因为数组是长度固定的,所以要进行增删的时候,需要进行复制操作,重新复制一个新的数组,在把原数组的元素存进去。

增加:创建新数组:长度是元素数组.length+1

删除:创建新数组:长度是元素数组.length-1

这里可以查看ArrayList集合的源码,ArrayList的底层实现就是一个数组

  1. 链表:链表的基本特点是:查询慢,增删快

查询慢:因为链表是利用一个类似指针的概念,由上一个元素指向下一个元素,所以在查询的都是,都是从第一个元素开始查询。

增删快:因为他这个指针是指向下一个元素

增加:先把增加位置的上一个元素指向位置记录下来,然后把上一个元素指向新增的元素,新增的这个元素指向上一个元素指向的元素

删除;把删除元素的指向给到上一个元素的指向下一个元素的位置

  1. 树:树状结构:有一个根目录有多个分支,分支下又有多个分支

这个类似于图书馆,图书馆中有多个分类:经济,文学等等;文学也会有散文,诗歌小说等,小说可能也分为,都市,修仙等

图书馆:相当于根目录

文学,经济:相当于根目录的分支

散文,诗歌,小说:就是文学的分支

都市小说,修仙小说:就是小说的分支

二叉树:每一个目录的分支不能大于2

就相当于图书馆,你只能有文学和经济两个分类,别的多了就不不是二叉树了。

二叉树的好处:他的查询特别快

二分查找:每次取中间查找,每次查询操作都能将一半数据给查询过。

  1. 链表: 单向链表,只有一条链子,不能保证数据的顺序

双向链表,双向链表,有一个链用于记录顺序,它是有序的

posted @ 2020-05-12 16:48  七七负柒柒  阅读(176)  评论(0)    收藏  举报