什么是数据结构?
数据结构,就是数据的组织形式。这样说不够通透,通俗点说,就是把信息(一堆数据)捏成什么样子,以便维护。比如:
一个学生的数据结构,如何设计呢?
我们假设一个小需求:统计本班学生男女比例。
针对这个需求,学生的姓名年龄都不重要,只关心学生的性别就可以了,于是,一个学生的数据结构设计如下就够了。
student {
sex;
}
添加一个需求:统计语文成绩在90分的学生有多少。
student {
sex;
scoreChinese;
}
上面的数据结构是非常简单的,实际项目中,数据结构一般要复杂一些,比如,王者荣耀的英雄模型数据结构如何设计呢?
role {
role_name;
role_type; // 法师 / 射手 / 战士 / 刺客
role_skill {
skill type; // AOE / 指向性
skill scope; // 技能范围
skill cool_down; // 技能CD
....
}
....
}
实际设计会复杂很多,这里只是为了说明,数据结构到底是什么:以什么结构去组织数据,以方便使用和维护。
可以看到,以上的数据结构,都是专用的数据结构,它专门为特定需求而服务。还有一些通用且经典的数据结构,也是接下来重点要讨论的:表、栈、队列、树、哈希散列。
什么是好的数据结构?
既然数据结构是帮助设计者实现功能的数据集合,那如何设计好的数据结构呢?
清晰、高效、满足要求基础上逻辑尽可能简单。