问:你知道数据结构吗?
我:?...
- 到底什么是数据结构?
我查了一下,数据结构就是以某种特定的布局方式存储数据的容器
。转成人话就是,储存数据的方式或者结构。 - 为啥要有数据结构这个概念
原因就是,不同的数据结构,对于不同的数据操作有不同的操作有不一样的效率。
也就是选择不同的数据结构就是为了提高对数据的某种操作效率。 -
常见的数据结构有
数组、栈、队列、链表、树、堆、散列表、图 8种。数组: 数组说一种很常见的数据结构,数组里面的每一个元素关联着一个索引(从0开始的自然数), 我们可以通过找到数组里面的某个元素,而且索引表明了元素在数据中的位置。 数组一般有一维数组和多维数组。 数组还有一个数组长度属性,用js的语法说明就是 数组都有length属性。 数组操作一般有: Insert(增): 往数组指定位置插入元素; Get(查):通过索引找到数组中指定位置元素的值 Delete(删除): 删除数组中指定位置的元素 Length(长度): 查询数组所有元素的数量 update(改): 根据所以,修改指定元素的值(很多文章没讲这个,但是js是有这样的操作,我要查一下, 我也不太确定这个改是否有,应该有update才对的) 数组优点: 1.可以根据索引快速找到元素 2.可以很方便的根据索引遍历整个数组 数组缺点: 1.数组的大小固定后就无法扩容(这句话用js的数组去理解,是不行的) 2.数组删除慢 3.根据值去查找数组中的元素,慢(遍历,对比,找索引) 数组还分有序数组和无序数组。(这两个的区别,我需要再查查资料消化一下,后续补上)
栈:
画了个图:
栈就是个像杯子一样的东西,只有一个口,出和进都只能通过这个口。
栈操作特点就是,先进后出。
所以,栈应用场景是类似于 递归这种功能。
队列:
队列类似于管道一样的东西。有指定的入口和指定的出口,而且管道的出口和入口是不能变的。
就像家里的水龙头那个管道,进水口和出水口都是固定不变的。
队列的特点就是,先进先出,在多进程阻塞队列管理中非常适用。
队列的缺点也比较明显,找后进的元素效率很低。
链表:这个本人还没理解透,后续再补上
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。