(此文仅用于记录我复习数据结构的过程,以便个人后续复习用)
绪论:
数据:信息的载体
数据项:最小不可分割单位,如一个人的名字
数据元素:数据的基本单位,由若干个数据项组成
数据类型:1.原子类型:int、char等;2.结构类型:struct;3.抽象数据类型。
数据结构三要素:逻辑结构,存储结构(物理结构),数据的运算
1.逻辑结构又分为线性结构与非线性结构,逻辑结构与存储结构无关,独立于计算机
线性结构:线性表、栈、队列(线性结构:一对一关系)
非线性结构:树、图、集合(集合:同属于一个集合,无其他关系;树形结构:一对多;图状结构:多对多)
2.存储结构分为:顺序存储、链式存储、索引存储、散列存储;存储结构是用计算机语言实现的逻辑结构,依赖于计算机语言;
顺序存储:物理位置也相邻,优点是可随机存取,缺点是只能使用相邻的一整块存储单元;
链式存储:物理位置可以不邻,使用地址指针表示逻辑关系,优点可以充分利用所以存储单元,缺点是每个元素都要存放指针占用空间,且只能实现顺序存取;
索引存储:存储元素同时建立一个索引表(存放索引项:地址,关键字),优点是检索速度快,缺点是索引表占用额外存储空间,增删数据还要修改索引表,浪费时间。
散列存储:根据元素关键字直接计算出该元素的存储地址,又叫哈希存储。优点是增删改查都很快,缺点是若散列函数不好,可能出现冲突而浪费时间空间。
3.数据的运算:定义+实现。定义针对逻辑结构(文字表达都行),传达功能;实现针对存储结构,指出具体操作步骤。
算法:指令的有限序列。有穷性(有穷步、有限时间)、确定性(同输入同结果)、可行性、输入(0或多)、输出(1或多)。