算法整理篇之:数据结构 | 数组(1)
数组,是最基础的数据结构,因为其所代表的是一段连续序列(如果按照C++中的定义),或者从广义上来讲的一个集合。
结构特点:
1)索引(Index),又叫下标;
一般地,我们可以借鉴下标的思想,对数据进行标号,从而组织成为序列,最大的好处就是能够保证元素的唯一性,如同数据库的Primary Key。
这与”寻址“,”父亲表示法“,”指针“的思想是同出一辙的。
2)值(Value),又叫元素。
直接结果,当然,这个直接结果也可能就是一个索引,在算法中,常见形如:”a[[i+j]]“。
思想变种:
当索引Index变为Key时,那么就成了哈希表;
当索引Index编程了Name时,就成了名值对;
不管怎么变,你都发现,最后都可以抽象为集合,都应该支持一些公共的API(Find,Insert,Modify,Delete),甚至突然间发现,数据库的二维表也就这么回事,那么,是否对数据存储有点兴趣了?。。。Stop,Stop,Stop,回来吧,偏题了!
总结:
1)数组能够组织和描述逻辑上的一群数据,即集合;
2)能够用做编号、寻址;
3)能够表示栈,队列,二叉树,图;
4)控制好数组的下标,就控制好了数组。