数据结构,清华大学出版社,严蔚敏吴伟民编著.docVIP

  • 240
  • 0
  • 约4.78万字
  • 约 91页
  • 2020-03-02 发布于河北
  • 举报

数据结构,清华大学出版社,严蔚敏吴伟民编著.doc

绪论 数据结构是计算机中存储、组织数据的方式。精心选择的数据结构可以带来最优效率的算法。 程序设计= 算法 +数据结构 解决问题方法的效率: 跟数据的组织方式有关 跟空间的利用效率有关 跟算法的巧妙程度有关 数据:所有能输入到计算机中,且被计算机处理的符号的集合, 是计算机操作对象的总称; 是计算机处理的信息的某种特定的符号表示形式。 数据元素:数据中的一个“个体”,数据结构中讨论的基本单位。 相当于“记录”,在计算机程序中通常作为一个整体考虑和处理。 数据项: 相当于记录的“域”, 是数据的不可分割的最小单位,如学号。数据元素是数据项的集合。 数据对象:性质相同的数据元素的集合. 例如: 所有运动员的记录集合 数据结构:是相互间存在某种关系的数据元素集合。 数据结构是带结构的数据元素的集合。 不同的关系构成不同的结构。 次序关系: {ai,ai+1|i=1,2,3,4,5,6} 对每种数据结构,主要讨论如下两方面的问题: 1) 数据的逻辑结构,数据结构的基本操作; 2) 数据的存储结构,数据结构基本操作的实现; 数据的逻辑结构: 数据之间的结构关系,是具体关系的抽象。 数据结构的基本操作: 指对数据结构的加工处理。 14、 数据的存储结构 (物理结构): 数据结构在计算机内存中的表示。 数据结构基本操作的实现: 基本操作在计算机上的实现(方法)。 数据结构的有关概念 16、数据元素的4类的基本结构: eq \o\ac(○,1)集合; eq \o\ac(○,2) 线性结构:结构中数据元素之间存在一对一的关系; eq \o\ac(○,3) 树形结构:结构中数据元素之间存在一对多的关系; eq \o\ac(○,4) 图状结构或网状结构:结构中数据元素之间存在多对多的关系。 C语言的优点:C语言可以直接操作内存。 每个节点都由两部分组成:数据域和指针域。 链接存储结构特点: 比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成)。 逻辑上相邻的节点物理上不必相邻。 插入、删除灵活 (不必移动节点,只要改变节点中的指针)。 数据类型 是一个值的集合和定义在此集合上的一组操作的总称。 ADT 有两个重要特征:数据抽象和数据封装。 抽象数据类型 (Abstract Data Type 简称ADT):是指一个数学模型以及定义在此数学模型上的一组操作。 抽象数据类型有: 数据对象〈数据对象的定义〉、数据关系〈数据关系的定义〉、 基本操作〈基本操作的定义〉。 数据类型的定义和含义。 定义:数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 含义:将数据按一定次序与形式存放的结构。 24、算法空间复杂度S(n) 算法的存储量包括: 输入数据所占的空间; 程序本身所占的空间; 辅助变量所占的空间。 算法具有有穷性、确定性、可行性、输入和输出五大特性。 抽象数据类型具有数据抽象、数据封装的特点。 数据的储存结构分为:顺序存储结构和链式存储结构。 第二章 线性表 1、线性结构的特点:在数据元素中的非空有限集中。 (1)存在唯一的一个被称作“第一”的数据元素; (2)存在唯一的一个被称作“最后一个”的数据元素; (3)除第一个外,集合中的每一个数据元素均只有一个前驱; (4)除最后一个外,集合中的每一个数据元素均只有一个后继。 2、线性表(Linear List) :一个线性表是n个数据元素的有限序列。 3、线性表的顺序存储实现: typedef struct { ElementType Data[MAXSIZE]; int Last; } List; List L, *PtrL; 4、初始化(建立空的顺序表) List *MakeEmpty( ) { List *PtrL; PtrL = (List *)malloc( sizeof(List) ); PtrL-Last = -1; return PtrL; } 5、查找 int Find( ElementType X, List *PtrL ) { int i = 0; while( i = PtrL-Last PtrL-Data[i]!= X ) i++; if (i PtrL-Last) return -1; /* 如果没找到,返回-1 */ else return i; /* 找到后返回的是存储位置 */ } 6、插入算法 void Insert( ElementType X, int i, List *PtrL ) { int j; if ( Pt

文档评论(0)

1亿VIP精品文档

相关文档