一.基础概念
1.数据结构是什么?
计算机对数据组织管理的方式。
研究数据与数据之间的关系的一门学科。
数据结构指的是数据的逻辑结构和存储结构及其操作.
关系:逻辑关系:线性(前驱数:后继数 满足1:1) 非线性存储关系: 顺序存储 链式存储运算关系: 增删改查、排序...
2.应用
数据库系统 操作系统 编译系统。。。。
3.三种数据结构
线性结构:重点掌握
树形结构:二叉树 重点:遍历
图形结构:了解
4.数据的逻辑结构与存储结构密切相关
算法设计: 取决于选定的逻辑结构
算法实现:依赖于采用的存储结构
5.算法
1)概念
算法(Algorithm)是一个有穷规则(或语句、指令)的有序集合。它确定了解决某一问题的一个运算序列。对于问题的初始输入,通过算法有限步的运行,产生一个或多个输出。
2)特性
有穷性 —— 算法执行的步骤(或规则)是有限的;
确定性 —— 每个计算步骤无二义性;
可行性 —— 每个计算步骤能够在有限的时间内完成;
输入 —— 算法有一个或多个外部输入;
输出 —— 算法有一个或多个输出。
3)评价算法好坏的方法 :
消耗时间的多少: 时间复杂度
消耗存储空间的多少: 空间复杂度
容易理解、容易编程和调试、容易维护。
4)时间复杂度(重点)
概念:语句频度之和的数量级表示
T(n)=O(f(n))
例如:
冒泡排序: T(n) = O(n^2)
5)空间复杂度
设算法对应问题的体积(或规模)为n,执行算法所占存储空间的量级为D(n),则D(n)为算法的空间复杂度(Space Complexity)。
二、线性表
存储: 顺序存储: 顺序表链式存储: 链表运算: 增删改查 、排序....
1.顺序表线性表的顺序存储叫顺序表。特点:逻辑线性、存储线性
2.抽象顺序表数据结构#define SIZE 64typedef int data_t;typedef struct list{data_t data[SIZE]; int index;//记录表尾元素下标}LIST;//给 struct list 取别名 LIST//1.创建空表LIST *createSeqlist(void){LIST * seqList = (LIST *)malloc(sizeof(LIST));//在堆区给顺序表申请空间if(NULL == seqList)//出错处理return NULL;bzero(seqList->data, sizeof(seqList->data));//内存清零函数seqList->index = -1;//表示空表return seqList;//返回顺序表的首地址}//2.判空//3.判满//4.增删改查...