什么是数据结构什么是数据结构.doc

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么是数据结构什么是数据结构

第一章 绪论 1--1 什么是数据结构 例子 学生成绩表(线性表) 学号 姓名 语文 数学 物理 化学 001 张三 76 80 90 87 002 李四 65 74 80 60 003 王五 59 70 76 60 例二 对奕问题(树结构) 例三 多叉路口交通灯的管理问题(图的结构) C D B E A 数据结构: 带有结构的数据元素集合及其运算称为数据结构. 结构: 数据元素间的关系。 基本概念和术语 数据: 对客观对象的抽象。 数据元素: 数据的基本单位。 数据对象: 有相同性质的数据元素的集合。 数据结构: 结构: 数据间的关系。 基本结构(四类) 集合 线性结构 树形结构 图状结构 (网状结构) 数据结构的形式定义: (D,S): 其中D为数据元素有限集 S为D上关系的有限集。 逻辑结构: (逻辑关系) 物理结构: (存储结构)在计算机中的表示 数据元素间的关系在计算机中的两种表示方法 顺序映象-(顺序存储结构 非顺序映象-(链式存储结构 数据类型: 一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型(ADT): 一个数学模型以及定义在该模型上的一组操作可用(D,S,P)表示, 其中D为数据对象S为D上的关系集P为对D的基本操作。 ADT描述的一些说明及实现(P10) 算法 算法的描述和算法分析 一、 算法是解决某一特定问题的有限运算序列,其特性有: 有穷性 确定性 能行性 输入 输出 二、描述算法的约定 每一个算法以函数形式给出(类的概念)。 有关结点的类型定义,全局变量的说明等均在算法之前说明。 C的函数可直接调用 NULL空指针 (define 预定义。 如求 10! #define M 10 int p(int x) { int i,s; for (i=1,s=1;i=10;i++) s=s*i; return(s);} 三、算法分析 时间、空间复杂性(时间消耗、空间占用量) 渐近时间复杂度:T(n)=O(f(n)) 线性表 线性表的特点: 存在唯一的一个被称作”第一个”的数据元素。 存在唯一的一个被称作”最后一个”的数据元素。 除第一个外,集合中的每一个数据元素均只有一个前驱。 除最后一个外,集合中的每一个数据元素一均只有一个后继。 线性表的类型定义 一、线性表 线性表: 具有上述四个特点的n个数据元素的有限序列 数据项(记录(文件 线性表的长度 注:线性表是一个相当灵活的数据结构,它的长度可根据需要增长或缩短 其运算有:存取,插入,删除,查找,合并,分拆,排序,求表的长度。 二、抽象数据类型 ADT List { 数据对象:D={ai | ai(ElementSet , i=1,2,…n, n=0} 数据关系:R1={ai-1,ai | ai-1,ai (D, i=2,3,….n} 基本操作: (略) } 三、例子 分别表示集合A和B的线性表LA和LB,现需求A(B,即在LA中插入LB中在LA中没有的元素(算法2.1P20) 四、算法2.2 已知两个数据元素已按不减有序排列的线性表LA和LB,现要它们归并为一个新的线性表LC,且LC的数据元素也是按不减有序排列。 如LA=(3,5,8,11)、LB=(2,6,8,9,11,15,20) 则 LC=(2,3,5,6,8,8,9,11,11,15,20) (算法2.2P21) 2—2 线性表的顺序表示和实现 一、线性表的顺序表示 1)、线性表的顺序表示就是用一组地址连续的存储单元依次存储线性表的数据元素。 2)、对于线性表 a1 ,a2,…ai…,an 如果每个元素占用s个存储单元, 则ai+1的位置为: LOC(ai+1)=LOC(ai)+s LOC(ai+1)=LOC(a1)+(i-1)*s (存储结构示意图P22) 二、线性表的实现 1、动态分配顺序存储结构 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct { ElemType *elem ; int le

文档评论(0)

cduutang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档