但凡IT江湖侠士,演算法与数据结构为必修之课。早有前辈已经明确指出:程序=演算法+数据结构 。要想在之后的江湖历练中通关,数据结构必不可少。数据结构与演算法相辅相成,亦是阴阳互补之法。
开篇
说道数组,几乎每个IT江湖人士都不陌生,甚至过半人还会很自信觉的它很简单。 的确,在菜菜所知道的编程语言中几乎都会有数组的影子。不过它不仅仅是一种基础的数据类型,更是一种基础的数据结构。如果你觉的对数组足够了解,那能不能回答一下:
- 数组的本质定义?
- 数组的内存结构?
- 数组有什么优势?
- 数组有什么劣势?
- 数组的应用场景?
- 数组为什么大部分都从0开始编号?
- 数组能否用其他容器来代替,例如c#中的List<T>?
定义
百科
所谓数组,是相同的元素序列。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按无序的形式组织起来的一种形式。
正如以上所述,数组在应用上属于数据的容器。不过我还是要补充两点:
- 数组在数据结构范畴属于一种线性结构,也就是只有前置节点和后续节点的数据结构,除数组之外,像我们平时所用的队列,栈,链表等也都属于线性结构。