- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构
适用班级:软件设计师
主讲:张 红
网址:
E-Mail:bitpx@163.com
分值说明:早上考8-12分, 下午考15-30分
比特培训中心
贵州·贵阳
第一节.序论
1.1 什么是数据?
所有能输入到计算机中并能够被计算机程序处理的符号的总称.它是计算机程序加工的原料.
1.2 什么是数据元素?
数据的基本单位,在计算机程序中通常作为一个整体来进行考虑和处理.如数组中一个存储单元里面的数或者链表中一个结点.
1.3什么是数据结构?
是数据元素相互之间存在的一种或多种特定关系的集合.主要研究数据逻辑结构和存储结构及其运算的实现,数据结构的种类:
集合:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其它关系。
线性结构:结构中的数据元素之间存在一个对一个的关系
树形结构:结构中的数据元素之间存在一个对多个的关系
图:状结构或网状结构 结构中的数据元素之间存在多对多的关系
1.4 数据的逻辑结构
结构定义中的“关系” 描述的是数据元素之间的逻辑关系,又称为逻辑结构.比如平常教学中所画的内存图,数组等为数据的逻辑结构.
1.5 数据的物理结构
数据结构在计算机中的实际表示形式称为数据的物理结构,又称为物理存储.
1.6 算法和算法分析
1.6.1 什么是算法?
对待定问题求解步骤的一定描述,它是指令的有限序列,其中每一条指令表示一个或多个步骤。为解决某问题的算法与为该问题编写的程序含义是相同的。
1.6.2算法的五个特性?
有穷性:算法必须在执行有穷步之后结束。
确定性:算法中每一条指令必须有确切的含义,读者在理解时不会产生二义性,并且在相同条件下,相同的输入只能得到相同的输出。
可行性:算法能把问题真正的解决。
输入:一个算法有零个或多个输入
输出:一个算法有一个或多个输出
例(2002年)算法是对问题求解过程的一类精确描述,算法中描述的操作都是可以通过已经实现的基本操作在限定时间内执行有限次来实现的,这句话说明算法具有__(11)__特性。
(11) A. 正确性 B. 确定性 C. 能行性 D. 健壮性
1.6.3 算法设计的要求
正确性:算法应当满足具体问题的需求
可读性:算法应该能让人读懂,能被计算机运行。
健壮性:算法应该具有容错处理能力,不容易被击垮。
高效率与低存储量要求:效率指程序的执行时间(越短越好),算法要占用计算机一定的存储量(越小越好)。
1.6.4算法效率的度量
时间复杂度
从运行时间上度量,使用大O记法假如一个程序的实际执行时间为T(n)= 2n3+n2+5,则T(n)=O(n3).常见的时间复杂度有:
空间复杂度
一个程序的空间复杂度是指程序运行从开始到结束所需的存储量。
1.固定空间 2.可变空间
第二节.线性表
线性表是由相同数据类型的结点组成的有限序列。如数组、链表(单链表、双链表、循环单链表,循环双链表)、栈、队列,双端队列等。
数组:int a[5]={1,2,3,4,5};
a[0] a[1] a[2] a[3] a[4]
1 2 3 4 5 单链表
单循环链表
双向循环链表
使用头结点的好处:不管链表是否为空,头结点都不为空,这使得对链表的各种操作(查找和修改)得到统一.
2.1线性表的存储
(1)顺序存储 用地址连续的数据结构如数组来存储线性表。
优点:能随机存取线性表中的任何结点。
缺点:数组的大小通常是固定的,不利于任意增加或减少线性表的个数;插入和删除线性表的结点时,要移动数组中的其他元素,操作复杂。
(2)链接存储
用链表存储线性表(链表),最简单的是单向链表。
优点:表的每个结点的实际存储位置是任意的,这给线性表的插入和删除带来方便,只要改变链表有关结点的后继指针就能完成插入或删除的操作,不需移动任何表元。
缺点:每个结点增加了一个后继指针成分,要化费更多的存储空间;不方便随机访问线性表的任一结点。
2.2 线性表的主要基本运算
2.2.1查找运算
在线性表查找具有给定键值的结点。算法有顺序查找、分块查找、二分查找、散列查找等,其中二分查找要求线性表是一个有
序序列。
注意:在链式存储的情况下,只能用顺序查找算法。
2.2.2 插入运算
在线性表的第i(0≤i≤n-I)个结点的前面或后面插入一个新结点。分顺序存储和链式存储两种情况:
顺序存储的情况下
检查插入要求的有关参数的合理性
把原来的第n-1个结点至第i个结点依次往后移动一个数组元素位置
修改线性表的结
原创力文档


文档评论(0)