预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(完整word版)数据结构老师给的复习要点(严蔚敏版) (完整word版)数据结构老师给的复习要点(严蔚敏版) (完整word版)数据结构老师给的复习要点(严蔚敏版) 第一章 1.怎样理解“算法+数据结构=程序”这个公式?举例说明。 算法是语句序列解决特定问题的固有程序片段。数据结构是确定数据间的关系。从具体问题抽象出一个合适的数学模型、然后设计一个解决此数学模型的算法,最后编写出程序。寻求数学模型的是指就是数据结构要完成的工作。参看书p1前两段的描述。 2.数据结构的概念,它包含哪三方面的内容? 数据结构:是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间饿关系和操作的学科。参看书p3 包含三方面的内容:1、数据之间的逻辑关系2、数据在计算机中的存储方式3、在数据上定义的运算的集合。 3.数据、数据元素、数据项的基本概念。举例说明数据元素和数据项的联系与区别。 数据:描述客观事物的数字、字符以及所有能直接输入到计算机中并被计算机程序处理的符号的集合。 数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑或处理。 数据项:数据项是具有独立含义的最小标识单位,是数据元的一个具体值,是数据记录中最基本的、不可分的有名数据单位。 例1:classA { intc[123]; inti; }; classB { Aa; } Bb; b.a是数据项,B是数据元素 例2:一本书的数目信息为一个数据元素,而数目信息中每一项(如书名、作者名等)为一个数据项 4.从逻辑结构来看,数据结构有哪四种基本结构,各自的特点是什么? 1、集合(数据元素之间同属于一个集合,再无其他关系) 2、线性结构(数据元素之间存在一对一的关系) 3、树形结构(数据元素之间一对多的关系) 4、图状结构或网状结构(数据元素之间多对多的关系) 5.从物理结构来看,数据结构有哪两种基本结构,各自的特点是什么? 1、顺序存储结构 特点:借助元素在存储器中的相应位置来表示数据元素之间的逻辑关系。 2、链式存储结构 特定:借助元素在存储地址的指针表示数据元素之间的逻辑关系。 6.算法的5个特征,4个评价标准是什么? 特征:有穷性、确定性、可行性、输入、输出。 评价标准:正确性、可读性、健壮性、效率与低存储量需求。 7.描述时间复杂度。 (1)x=0;y=0;z=0; for(i=1;i<=n;i++) {x++; for(j=1;j<=n;j++) {y++; for(k=0;k<=(2*n);k++) z++; } } 程序片段中语句x=0、x++、y++、z++的时间复杂度和整段程序的时间复杂度。 O(1) O(n) O(n^2) O(n^3) O(n^3) 第二章线性表 1.描述线性结构的特点。 2.判断对错,并解释说明。 (1)线性表中的数据元素可以是各种各样的,但同一线性表中的元素一定具有相同特性。 (2)线性表采用顺序存储表示时,必须占用一片连续的存储单元。 (3)线性表采用链式存储表示时,不能占用一片连续的存储单元。 3.顺序表的第一个元素的存储地址是101,每个元素的长度为3,计算出第6个元素的存储地址是多少? LOC(a6)=LOC(a1)+5*L=101+5*3=116 4.长度为n的顺序表中,在第i个元素前插入一个新元素时,需要移动多少个元素?插入算法的平均移动次数是多少,时间复杂度是什么? 参看书P24~25,需要移动n-i+1个元素,平均移动次数为n/2,时间复杂度是O(n) 5.长度为n的顺序表中,将第i个元素删除时,需要移动多少个元素?删除算法的平均移动次数是多少,时间复杂度是什么? 参看书P24~25,需要移动n-i个元素,平均移动次数为(n-1)/2,时间复杂度是O(n) 6.线性链表的存储特点是?单链表中的结点由哪两部分构成,画图说明。 7.在一个单链表中,q所指结点是p所指结点的直接前驱结点,若在q与p之间插入一个s所指的结点,写出执行的两条语句(提示:先链接、后断开)。 s->next=p;q->next=s;或者s->next=q->next;q->next=s; 8.在单链表中,w所指结点是s所指结点的直接前驱结点删除s结点,写出执行的两条语句。 w->next=s->next;free(s) 9.画图说明单循环链表为空的状态,并写出循环链表判断是否为空的语句。 参看书P35图2.12(b)判空语句H->next=H 10.双向链表中,要在指针q指向的结点后插入新结点t,写出执行的四条语句。 t->prior=q;t->next=q->next;q->next=t;t->next->prior=s 11.双向链表中,要删除指针q的后继结点,写出执行的两条语句。 T=q->next;q->next=t->ne