推荐参考书:
1、《数据结构(C语言版)(第三版)》.唐国民
2、《数据结构(C语言版)》.严蔚敏.清华大学出版社
成绩评定:平时作业与测试(30%)+上机(20%)+期末(50%)
时间安排:9周理论课+6周实验课,第16周考试
教学安排:
第一章:第一周
第二章:第二周,链表
第三章:堆栈和队列
第四章:字符串的运用,模式匹配(4.3)
第五章:数组
第六、七章:非线性数据结构
第八章讲的少,第九章不讲
结构体指针是基础
期末题型:
一、选择(10*1)
二、填空(20*1)
三、简答(5*10)
四、算法应用(20*1),类C,给算法思想的自然语言,用某种描述语言填空。选自三级考试试题卷汇编
1.1 什么是数据结构
Data Struct={D,R}
①线性:
D={A,B,C,D}
R={(A,B),(B,C),(C,D)}
②树(非线性)
D={A,B,C,D,E,F,G}
R={(A,B),(A,C),(A,D),(B,E),(D,F),(D,G)}
D={'A','B','C','D'}
R={('A','B'),(’B‘,’C'),('C','D')}
char x[4];
x[0]='A';
x[1]='B'
位置逻辑关系包含前趋后继
①数据结构自身信息
②数据的相互关系
struct aa
{
char x;
struct aa*next;
}
srtuct aa,x1,x2,x3,x4
x1.x='A';x2.x='B';...
x1.next=&x2;
x2.next=&x3;
二分法查找数据必须有序
数据的存储结构
1)顺序存储方法
2)链接存储方法
3)索引存储方法,一般删除和插入在图1.2(b)中操作,索引表不动
4)散列存储方法
例:若需设计公司门禁,员工序号经常因离职而注销,采用散列
5,8,12,21,3,9
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
21 | 12 | 3 | 5 | 8 | 9 | ||||
x%10 除以10的余数
加入22号员工,2被占用,向后3被占用,存入4中
Hash表要求:不能太满,试探几次即可成功。向后试探遇到空即查找失败
1.3.1 算法的概念
(1)有穷性,while(1)即while(1≠0)是无穷循环,算法必须有穷
(2)确定性
(3)可行性
(4)输入。一个算法有一个或多个输出
(5)输出。一个算法由一个或多个输出
设食堂排队打饭
'小王'→'小李'→'小张'
队首 队尾
队伍里每个人都是数据元素
队首打完饭即删除,新来的排在队尾:
删除从队首,插入从队尾。数组中相同
1.3.2 算法的优劣
(1)正确性
(2)健壮性
(3)可读性
(4)执行算法所耗费的时间 (4)比(5)重要,因为多从用户端考虑
(5)执行算法所耗费的存储空间
1.3.3.1 算法的时间复杂度分析
O(f(n))
f(n)取最高次项且忽略系数
时间复杂度与空间复杂度通常矛盾,优先考虑时间复杂度
老师寄语:
①在不知道做什么的时候,把能做的先做了
二级→三级→国家程序员(资格证书,水平证书)
②三级证书为敲门砖