《数据结构》第一章

推荐参考书:

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)取最高次项且忽略系数

时间复杂度与空间复杂度通常矛盾,优先考虑时间复杂度


 

老师寄语:

①在不知道做什么的时候,把能做的先做了

二级→三级→国家程序员(资格证书,水平证书)

②三级证书为敲门砖

posted on 2020-09-01 22:00  维特根斯坦  阅读(179)  评论(0编辑  收藏  举报