----------2013年10月25日 星期五 10时35分33秒 ---------
数据结构和算法(3-4天)
数据结构 - 堆栈、队列、链表、二叉树
算法 - 排序算法、查找算法
Unix下的C的开发(15天左右)
Unix/Linux的库 - 动态库,静态库
Unix/Linux的内存管理
文件操作
目录操作
进程管理
信号处理
IPC(进程间通信)
网络开发
进程开发
--------------------------------------------------------
数据结构是相互之间存在一种或多种特定关系的数据的集合
计算机程序设计 = 算法 + 数据结构
数据结构的三个层次
- 抽象层----逻辑结构
- 结构层----物理结构
- 实现层----运算结构
逻辑结构分为:
1.集合结构(集):结构中的数据元素除了属于同一个集合之外,没有其他的任何关系;
2.线性结构(表):结构中的数据元素是 一对一的前后关系;
3.树型结构(树):结构中的数据元素是 一对多的父子关系;
4.网状结构(图):结构中的数据元素是 多对多的交叉映射关系;
物理结构分为:
1.顺序结构(类似数组):结构中的数据元素放入连续的内存中;
2.链式结构(类似链表):结构中的数据元素放入不连续的内存中,每个元素还要和下一个元素的地址(指针)组成一个节点,数据元素以节点作为管理的基本单位;
优缺点:
顺序结构 随机访问方便(查询),插入删除不便,空间利用率低;
链式结构 随机访问不便(查询),插入删除方便,空间利用率高;
逻辑结构和物理结构的关系
逻辑结构和物理结构之间没有必然的联系,可以自由的组合,但根据实际需要和实现的复杂度选择更合适的一种;某种特殊情况下,还可以复合两种物理结构实现一种逻辑结构
表 树 图
顺序 数组 顺序树 复合
链式 链表 链式树 复合
每种数据结构都需要考虑以下的运算(运算结构):
创建与销毁
分配资源、建立结构、释放资源
插入与删除
增加、减少数据元素
获取与修改
遍历、迭代、随机访问
排序与查找
算法应用
堆栈(stack) - 顺序结构、链式结构
堆栈简称为栈,特点:后进先出,先进后出
顺序结构:
sa.h -> 结构和函数的声明(各种声明)
sa.c -> 函数的实现代码
链式结构:
sl.h sl.c testsl.c
队列
链表
二叉树