一转眼大学生活已过四分之一,和计算机打交道这条路注定要走下去。
在大一有了一定C语言基础(很菜鸡那种),迎来了数据结构这门重要的专业基础课。于是打算在这记录我的一些学习笔记吧!也算是锻炼下自己的总结能力。进入正题:
一. 什么是数据结构?
计算机应用范畴分为数值计算和非数值计算,而数据结构则是着重研究非数值领域内容。是介于数学,计算机硬件和软件三者之间的一门核心课程。具体所处地位可用一图来概括:
数据结构所交叉内容
数据结构又分为:1.逻辑结构
1.1 线性结构:线性表,栈,队,串,数组
1.2 非线性结构:树结构,图结构。
2.物理结构
2.1 顺序结构,链式结构,索引结构,散列结构。
3.数据运算
3.1 插入运算,删除运算,修改运算,查找运算,排序运算。
二.基本概念和术语
- 数据元素:数据的基本单位
- 数据项:数据不可分割的最小单位
- 数据对象:是性质相同的数据元素组成一个集合,是数据的一个子集。
- 存储结构:分为顺序存储结构(特点:利用数据元素在存储器中相对位置来表达它们之间逻辑关系),链式存储结构(特点:借助元素存储地址的指针来表示之间关系)。
- 数据类型:是一个值的集合以及作用在该集合上一组操作总称。抽象数据类型:是指一个数学模型以及定义在该模型上的一组操作。
而和数据结构的形式定义相对应,抽象数据类型定义形式可用三元组表示:
(D,S,P)
三.算法和算法分析
算法实际就是指对于某类问题的求解步骤的一种描述。
算法具有以下特点:
-
有穷性
-
确定性
-
可行性
-
输入
-
输出
而成功将一个算法实现,其需具有: -
正确性
-
健壮性
-
可读性
-
良好的时空性
未完待续。。。。。