792-数据结构.ppt

  1. 1、本文档共186页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 山东教育学院计算机系 李国 2007年12月 目录 第1章 绪论 第2单元: 线性表 栈与队列 串、数组与广义表 第3单元:树 第4单元:图 第5单元:查找 排序 第1章 绪论 1.1什么是数据结构 一、利用计算机解决实际问题的步骤: 具体问题 数学模型 算法(求解步骤) 二、数据结构的定义 例1:图书书目管理检索系统自动化问题 例2 人机对奕问题 例3:连通N个城市并且代价最小 1.2 基本概念和术语 根据数据元素间关系的基本特性,有四种基本数据结构: (1)集合——数据元素间除“同属于一个集合”外,无其它关系 (2)线性结构——一个对一个,如线性表、栈、队列 (3)树形结构——一个对多个,如树 (4)图状结构——多个对多个,如图 6、数据的逻辑结构—只抽象反映数据元素的逻辑关系 7、数据的存储(物理)结构—数据的逻辑结构在计算机存储器。存储结构分为: (1)顺序存储结构 (2)链式存储结构 1 .3抽象数据类型的表示与实现 利用C语言描述,注意以下几个约定: 1、为了清楚表达算法的返回结果是真、假、正常、不合理数据或溢出等状态,本教材采取以下宏定义,目的使返回更明确。 #define true 1 #define false 0 #define ok 1 #define infeasible -1 #define overflow -2 typedef int status; /*数据类型名的取别名 2、为了表示数据元素更具有一般性,教材采取约定ELEMTYPE作为数据元素的类型,将来上机处理数据时根据需要转换成C语言可接受的整型、实型或字符类型等。 3、为了便于算法描述,除了值传送方式外,增添了C++语言的引用的参数传递方式,在形参表中,以打头的参数为引用参数。 4、其他具体语句格式基本类似于C语言,但有所扩充,表达更方便,但有些不符合C语言语法规则,转换为上机调试程序时候需要略微做修改。 1 .4算法和算法分析 一、算法:(algorithm)解决某一特定问题的具体步骤的描述,是指令的有限序列。 特性: 1、有穷性:有穷步之后结束 2、确定性:每一条指令都确定,不可有二义性 3、可行性:每个算法是能行的,每一步骤都是可以实现的。 4、输入:0或多个输入 5、输出:至少有1个输出。 第二章 线性表 主要内容: 2.1 线性表的定义及逻辑结构 2.2 线性表的顺序表示及实现 2.3 线性表的链式表示及实现 2.4 线性表的基本应用 2.1 线性表的定义及逻辑结构 一、线性表定义 1、定义:一个线性表是n个数据元素的有限序列。一般记作(a1,a2…ai-1,ai,ai+1,…an)。 如: (A,B,C,D,E,F) (6,12,15,21,89,100) 数据库中每一条记录构成线性表中的每一个元素。 2、特征:元素个数n—表长度,n=0空表 7、求前驱、后继函数:PriorElem(L,cur_e,pre_e) NextElem(L,cur_e,next_e) 8、插入元素:ListInsert(L,i,e)在第i个元素前面插入元素e,注意元素的移动。 9、删除元素:ListDelete(L,i,e)删除第i个元素,大量元素的向前移动。 2.2 线性表的顺序表示及实现 一、线性表的顺序存储 1、存储定义:用一组地址连续的存储单元存放一个线性表。 2、元素地址计算方法: LOC(ai)=LOC(a1)+(i-1)*L LOC(ai+1)=LOC(ai)+L 其中:L: 一个元素占用的存储单元个数 LOC(ai):线性表第i个元素的地址 3、特点:实现逻辑上相邻—物理地址相邻 4、实现:可用C语言的一维数组实现 二、顺序存储的计算机内存储 1、存储定义 #define List_Init_Size 100 //初始分配存储容量 #define LISTINCREMENT 10 //初始容量满后每次增加的分配增量 Typedef struct { Elemtype *elem; //连续存储空间的首地址或一维数组名 Int length; //当前线性表的实际长度 Int listsize; //目前连续空间的实际存储元素的容量 }Sqlist; 说明:本定义是采取的指针定义连续存储空间的首地址elem及实际能存储元素的个数listsize,并记录出目前线性表的实际个数length,并实际提出若超出实际存储空间后可以增添新的空间能力。 此定义形式应该等价于

文档评论(0)

小玉儿 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档