与数据结构成为好朋友的七个要点
程序员有必要把算法(处理问题的步骤)和数据结构(作为处理对象的数据的排列方式)两者放到一起考虑。
了解内存与变量的关系
计算机所处理的数据都存储在被成为内存的IC中。在一般的个人计算机中,内存内部的数据被分割成为若干单元,每个单元可以存储8比特的数据。为了区分各个单元,每个单元都被分配了一个编号,这个编号被称为地址或者门牌号码。如果一台个人计算机装配有64M字节的内存,那么就会有从0到64M这么多个地址。
因为依靠制定地址的方式编写程序很麻烦,所以在C语言,Java等几乎所有的编程语言中,都是使用变量把数据存储近内存,或从内存把数据读出来。
了解作为数据结构基础的数组
数组是数据结构的基础,之所以这么说是因为数组反映了内存的物理结构本身。在内存中存储数据的空间是连续分布的。而在程序中,往往要从内存整体中分配一块连续的空间以供使用。如果用程序中的语句表示这种分配方式的话,就要用到数组。
了解数组的应用-作用典型算法的数组结构
数组是数据结构的基础。只要使用数组就能通过程序实现各种各样的算法已处理大量的数据。
了解并掌握典型数据结构的类型和概念
数组是一种直接利用物理结构的最基本的数据结构。只需使用for语句,就可以连续地处理数组中所存储的数据,实现各种各样的算法。
数据结构其实都是通过程序从逻辑上改变了内存的物理结构,即数据在内存上呈现的连续分布状态。
名称 | 数据结构的特征 |
---|---|
栈 | 把数据像小山一样堆起来 |
队列 | 把数据排成一队 |
链表 | 可以任意地改变数据的排列顺序 |
二叉树 | 把数据分为两路排列 |
栈用于处理那种无法马上处理,就暂且先都堆放在炸里吧。
队列就是等待做某事而排成的队。
链表的概率就相当于几个人手拉着手排成一排。
二叉树相关于一颗倒挂的树。其实二叉树是链表的特殊形态。