一.数据结构
1.概念:
"数据结构"(Data Structure)是指相互之间存在1/多种特定关系的数据元素构成的集合,分为逻辑结构和物理结构
2.物理结构
(1)概念:
"物理结构"是指数据存储在存储器中的方式.存储器主要是指内存,而外部存储器(如磁盘/光盘/软盘)中数据的组织形式通常用文件结构来描述.数据的
存储形式有2种:顺序存储和链式存储
(2)顺序存储:
"顺序存储结构"是指把数据元素放在地址连续的存储单元里的物理结构,其数据间的逻辑关系和物理关系是一致的
(3)链式存储:
"链式存储结构"是指把数据元素放在任意的存储单元里的物理结构,这些存储单元可以是连续的,也可以是不连续的.链式存储结构需要在每个存储单元
中存放与之关联的数据的地址
3.逻辑结构
(1)概念:
"逻辑结构"是指数据对象中的数据元素间的关系,分为4类:集合,线性结构,树形结构,图形结构.常见的数据结构有数组(Array),栈(Stack),链表(Linked List),队列(Queue),树(Tree),图(Graph),堆(Heap),散列表(Hash)这8种
(2)集合:
"集合"(Set)的元素间除了"同属1个集合"的相互关系外,没有其他关系
(3)线性结构:
"线性结构"(Linear Structure)的元素间存在1对1的相互关系
(4)树形结构:
"树形结构"(Tree Structure)的元素间存在1对多的层次关系
(5)图形结构:
"图形结构"(Graphical Structure)的元素间存在多对多的相互关系
二.抽象数据类型(Abstract Data Type;ADT)
1.概念:
抽象数据类型是一些操作的集合,如表/集合/图及其操作都可以看作是ADT
ADT是数学的抽象,其定义中不涉及操作的实现,这可以看作是模块化设计的扩充
基本想法是,这些操作的实现只在程序中编写1次,任何其他部分都通过调用函数来完成这些操作
如果需要修改操作的细节,只需要修改运行这些操作的例程即可
在C语言中,数据类型分为2类:原子类型与结构类型
2.原子类型:
"原子类型"是指那些不可再分解的基本类型,如int/float/char
3.结构类型:
"结构类型"是指由若干个类型组合而成,可以再分解的类型,如int array