数据结构162879.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构概念的三个方面 数据元素之间的逻辑关系 数据元素在计算机中的存储方式 在这些数据元素上定义的运算的集合。 二、数据的逻辑结构 分类:(两大类) (一)线性结构 数据元素之间的逻辑关系可以用一个线性序列简单地表示出来。 线性表是典型的线性结构,它的数据元素只按先后次序联接。 有栈、队列、字串、数组等方式。 (二)非线性结构 不满足线性结构特点的数据结构称为非线性结构。 树、图等是非线性结构。 树中的数据元素是分层次的纵向联接。 图中的数据元素则有各种各样复杂联接。 三、数据结构的运算 插入:在数据结构中的指定位置上插入新的数据元素; 删除:根据一定的条件,将某个结点从数据结构中删除; 更新:更新数据结构中某个指定结点的值; 检索:在给定的数据结构中,找出满足一定条件的结点来,条件可以是某个或几个数据项的值; 排序:根据某一给定的条件,将数据结构中所有的结点重新排列顺序等。 类型: 加工型操作:操作改变了存储结构的值(如插入、删除、更新等) 引用操作:操作只是查询或求得结点的值(如检索等)。 同一种运算可以设计不同的算法,评价算法的几个指标: 正确性 运算时间:执行该算法所需的时间。 存储空间:运行该算法所需的存储空间。 1.线性表的逻辑结构 线性表L用符号表示为: L=(a1,a2,a3,.. ai...,an) 也可以正式定义为: 若数据结构 L=(D,R)是一个线性表,则: D是包括a1,a2,a3 .....an 等元素的集合。 R中只包含一个关系,即: R={ai-1,ai | ai-1,ai∈D, 2≤i≤n }。 关系 ai-1,ai 给出了元素的一种先后次序。 a1 称为表的线性起始结点,an 为表的终结点。 2.线性表的存储结构 存储结构: 顺序存储结构和链接存储结构。 顺序表:具有顺序存储结构的线性表称为顺序表,用一组地址 连续的存储单元依次存储线性表中的每个数据元素。 线性链表:具有链接存储结构的线性表称为线性链表。 3.线性表的基本运算 (1)顺序表的操作 顺序表在各种高级语言里经常用一维数组实现,以下通过建立一个数组线性表类来讨论顺序表的操作。 假设定义的数组线性表类包含如下的属性和功能: 对象的属性(类的数据成员): 现有的元素:存放在一个数组中 现有数据的个数:长度 能存放数据的个数:容量 class ArrayLineList { int *data; //指向数组的首元素 int length; //数组中现有元素的个数 int volume; //数组的容量 public: //构造函数,将表的初始状态置为空表 { data = ; ; ;} …… } 对象的操作(或称为方法,类的成员函数) 构造函数:初始化对象,传递表的容量,创建一个空表,长度=0, 插入元素:新数据插入后,保证数据仍有序。 增加元素:在表的尾部增加一个数据。 删除元素:在表中删除某指定位置的元素。 查找元素:根据关键字(某数据项)的值,找到元素在表中的位 置,并返回,找不到,返回-1。 更新元素:用指定的值更新表中指定位置的元素的值 排 序:将表中元素按升序(或降序)排序。 具有以上属性和功能的数组线性表类可定义如下: 可将该类定义作为独立的文件保存在头文件ArrayLineList.h中 class ArrayLineList { int *data; int length; int volume; public: ArrayLineList(int n) { data = new int[n]; length = 0; volume = n; } void insert(int newData); void del(int index); void print( ); void update(int index, int value); int search(int key); void sort( ); int getValueAt(int index); void add(int value); }; 以下各方法的实现保存在ArrayLin

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档