- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构学习报告
数据结构学习报告
第一章:绪论
1.数据:人们利用文字符号、数字符号以及其他规定的符号对现实世界的事物及其活动所做的抽象描述。
2. 数据元素:表示一个事物的一组数据。
3. 数据项:构成数据元素的数据。
4. 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
5. 抽象数据类型:是指一个逻辑概念上的类型和这个类型上的操作集合。
6. 算法性质:
(1)输入性 (2)输出性 (3)有限性 (4)确定性 (5)可执行性
7. 算法满足条件:
(1)正确性 (2)可读性 (3)健壮性 (4)高时间效率 (5)高空间效率
8. 算法时间效率的度量:算法的执行时间需通过根据该算法编制的程序在计算机上运行时所消耗的时间来度量。方法有两种:
(1)事后统计方法 (2)事前分析方法
9. 算法的时间复杂度:算法的时间效率是算法所处理的数据个数n的函数,算法的时间效率也称作算法的时间复杂度。
作用:判断程序是否优化
总结:在第一章中主要学习到了数据结构的基本术语,抽象数据类型,算法设计的要求(主要针对时间复杂度)
第二章 线性表
线性表的类型定义
线性表:n个数据元素的有限序列,每个数据元素的具体含义可不同。
稍复杂的线性表中,一个数据元素可由若干个数据项组成;此时,数据元素称为记录,线性表称为文件。
要点:同一线性表中的元素具有相同特征。
线性表的长度:表中元素的个数n(n=0);n=0时为空表。
线性表的顺序表示和实现
线性表的顺序表示:用一组地址连续的存储单元依次存储线性表的数据元素。
假设线性表的每个元素需占用l个存储单元,则第i个数据元素ai的存储位置为:
LOC(ai)=LOC(a1)+(i-1)*l;其中LOC(a1)为线性表的起始位置或基地址。
线性表的顺序表示,称做线性表的顺序存储结构或顺序映像,叫做顺序表。
顺序存储结构的特点:逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素。
顺序存储结构的弱点:在做插入或删除操作时需移动大量元素。
顺序存储结构插入或删除元素时移动元素个数:
插入:E=n/2
删除:(n-1)/2
线性表的链式表示和实现
2.3.1 线性链表
线性表的链式存储结构:用一组任意的存储单元存储线性表的数据元素;因此不要求逻辑关系上相邻的元素在物理位置上也相邻,但不可随机存取。
数据元素AI的存储映像,称为结点,由存储数据元素信息的数据域和存储直接后继存储位置的指针域(指针域中存储的信息为指针或域)。
静态链表:用数组描述的链表
2.3.2 循环链表
循环链表:另一种形式的链式存储结构。特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。分为:单链的循环链表和多重链的循环链表。
2.3.3 双向链表
双向链表:结点中有两个指针域,其一指向直接后继,另一指向直接前趋。
一元多项式的表示及相加
如何用顺序存储结构和链式存储结构表示一元多项式及如何相加。
总结:在此章节中对线性表有了一定的认识,学习了相关线性表的类型及定义,抽象数据类型线性表相关定义,线性表的顺序存储结构,链式存储(循环链表)
线性表对数据的插入以及删除
栈和队列
栈:栈是限定仅在表尾进行插入或删除操作的线性表。栈的修改是按后进先出原则进行,因此栈又称为后进先出的线性表。
栈的表示和实现:
Ⅰ:顺序栈:栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针TOP指示栈顶元素在顺序栈中的位置。
Ⅱ:链式表示:与线性操作相类似。
栈的应用举例:括号匹配的检验(重点)
栈与递归的实现(例子:Hanio塔问题:
VOID HANOI (INT N,CHAR X,CHAR Y,CHAR Z)
{
IF(N==1)
MOVE(X, 1, Z);
ELSE{
HANIO(N-1, X,Z,Y);
MOVE(X,N,Z);
HANOI(N-1,Y,X,Z)
}
}
队列:队列是种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素。(注:栈只在头进行操作)
总结:在第三章中学习了栈并对栈的表示有了一定的了解,对链栈的存储方式也有一定的了解。HANOI问题是栈与递归的应用,此问题使我对栈有了进一步的认识并且对递归有了一定的认识。除了栈这类存储方式我还学习到了队列这种存储方式,明白了两种存储方式的区别。
串
串类型的定义
串:由零个或多个字符组成的有限序列,一般记为:S=‘A1A2…AN’(N》0)
串的长度:串中字符的数目N
空串:零个字符的串
子串:串中任意个连续的字符组成的子序列;包含子串的串相应称为主串。
串的位置:字符在序列中的序号(子串在主串中的位置则以子串的第一个字符
文档评论(0)