ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:157.09KB ,
资源ID:2925760      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2925760.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构清华大学出版社严蔚敏吴伟民编著.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、数据结构清华大学出版社严蔚敏吴伟民编著第一章 绪论1、 数据结构是计算机中 存储、组织数据 的方式。精心选择的数据 结构可以带来 最优效率 的算法。2、 程序设计 = 算法 +数据结构3、 解决问题方法的效率:跟数据的组织方式有关跟空间的利用效率有关跟算法的巧妙程度有关4、 数据 :所有能输入到计算机中 ,且被计算机处理的符号的集合, 是计算机操作对象的总称;是计算机处理的信息的某种特定的符号表示形式。5、 数据元素 :数据中的一个“个体” ,数据结构中讨论的基本单 位。 相当于“记录” ,在计算机程序中通常作为一个整体考 虑和处理。6、 数据项 : 相当于记录的“域”, 是数据的不可分割的最

2、小单位 如学号。数据元素是数据项的集合。7、 数据对象 :性质相同的数据元素的集合 .例如 : 所有运动员的记录集合8、 数据结构 :是相互间存在某种关系的数据元素集合。9、 数据结构是带结构的数据元素的集合。10、 不同的关系构成不同的结构。11、 次序关系 :|i=1,2,3,4,5,612、 对每种数据结构,主要讨论如下两方面的问题:1) 数据的逻辑结构,数据结构的基本操作;2) 数据的存储结构,数据结构基本操作的实现;13、 数据的逻辑结构: 数据之间的结构关系,是具体关系的抽象。 数据结构的基本操作: 指对数据结构的加工处理。14、 数据的存储结构 (物理结构 ): 数据结构在计算机

3、内存中的表示。 数据结构基本操作的实现: 基本操作在计算机上的实现(方法 )。15、 数据结构的有关概念16、数据元素的 4 类的基本结构 :1集合;2线性结构:结构中数据元素之间存在一对一的关系;3树形结构:结构中数据元素之间存在一对多的关系;24 图状结构或网状结构:结构中数据元素之间存在多对多 的关系。17、 C语言的优点:C语言可以直接操作内存。18、 每个节点都由两部分组成: 数据域和指针域 。19、 链接存储结构特点:比顺序存储结构的存储密度小(每个节点都由数据域和指针域组成 )。 逻辑上相邻的节点物理上不必相邻。插入、删除灵活 (不必移动节点,只要改变节点中的指针 )。20、 数

4、据类型 是一个值的集合和定义在此集合上的一组操作的 总称。21、 ADT 有两个重要特征 :数据抽象 和数据封装 。22、 抽象数据类型(Abstract Data Type简称ADT):是指一个数 学模型以及定义在此数学模型上的一组操作。23、 抽象数据类型有: 数据对象 数据对象的定义 、数据关系数据关系的定义、 基本操作 基本操作的定义 。24、 数据类型的定义和含义。 定义:数据类型是一个值的集合和定义在这个值集上的一组 操作的总称。含义:将数据按一定次序与形式存放的结构。24、算法空间复杂度 S(n) 算法的存储量包括:1输入数据所占的空间;2程序本身所占的空间;3辅助变量所占的空间

5、。25、 算法具有 有穷性、确定性、可行性、输入和输出五大特性。26、 抽象数据类型具有 数据抽象、数据封装 的特点。27、 数据的储存结构分为: 顺序存储结构 和 链式存储结构 。 第二章 线性表1、线性结构的特点:在数据元素中的非空有限集中。(1)存在唯一的一个被称作“第一”的数据元素;(2)存在唯一的一个被称作“最后一个”的数据元素;(3)除第一个外,集合中的每一个数据元素均只有一个前驱;(4)除最后一个外,集合中的每一个数据元素均只有一个后继。2、线性表 (Linear List) :一个线性表是 n 个数据元素的有限序列3、线性表的顺序存储实现:typedef struct Elem

6、entType DataMAXSIZE;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 Last & PtrL-Datai!= X )i+;if (i PtrL-Last) return -1; /* 如果没找到,返回 -1 */else retur

7、n i; /* 找到后返回的是存储位置 */6、插入算法void Insert( ElementType X, int i, List *PtrL ) int j;if ( PtrL-Last = MAXSIZE-1 )/* 表空间已满, 不能插入 */ printf( 表满 );return;if ( i PtrL-Last+2) /*检查插入位置的合法性 */ printf( 位置不合法 );return;for ( j = PtrL-Last; j = i-1; j- )PtrL-Dataj+1 = PtrL-Dataj; /* 将 ai an 倒序向后移动 */PtrL-Datai-1

8、 = X; /* 新元素插入 */PtrL-Last+; /*Last 仍指向最后元素 */ return;7、删除算法void Delete( int i, List *PtrL ) int j;if( i PtrL-Last+1 ) /* 检查空表及删除位置的合法性 */printf (不存在第d个元素” ,i ); return ;for ( j = i; j Last; j+ )PtrL-Dataj-1 = PtrL-Dataj; /* 将 ai+1 an顺序向 前移动*/PtrL-Last-; /*Last 仍指向最后元素 */ return;8、求表长int Length ( Li

9、st *PtrL ) List *p = PtrL; /* p 指向表的第一个结点 */int j = 0;while ( p ) p = p-Next;j+; /* 当前 p 指向的是第 j 个结点 */return j;9、查找( 1)按序号查找 : FindKth;List *FindKth( int K, List *PtrL ) List *p = PtrL;int i = 1;while (p !=NULL & i Next;i+;if ( i = K ) return p;/* 找到第 K 个,返回指针 */else return NULL;/* 否则返回空 */( 2)按值查找

10、 : FindList *Find( ElementType X, List *PtrL )List *p = PtrL;while ( p!=NULL & p-Data != X )p = p-Next;return p;10、插入(在链表的第i-1(1w iw n+1)个结点后插入一个值为 X的新 结点 )List *Insert( ElementType X, int i, List *PtrL ) List *p, *s;if ( i = 1 ) /* 新结点插入在表头 */s = (List *)malloc(sizeof(List); /*申请、填装结点 */ s-Data = X

11、;s-Next = PtrL;return s; /* 返回新表头指针 */p = FindKth( i-1, PtrL ); /* 查找第 i-1 个结点 */if ( p = NULL ) /* 第 i-1 个不存在,不能插入 */printf(H 参数 i 错);return NULL;else s = (List *)malloc(sizeof(List); /*申请、填装结点*/s-Data = X;s-Next = p-Next; /* 新结点插入在第 i-1 个结点的后面 */p-Next = s;return PtrL;11、删除(删除链表的第i (1Next; free(s)

12、;*/return PtrL;if ( p = NULL ) NULL;NULL; elseprintf(第小个结点不存在”卜1);printf( 第%d个结点不存在” j);p-Next = s-Next;/*从链表中删除*/free(s);/*释放被删除结点*/retur n PtrL;12、链表不具备的特点是可随机访问任一节点 插入删除不须要移动元素3不必事先估计存储空间 所需空间与其长度成正比13、带头结点的单链表head为空的判定条件是 2 14、如果最常用的操作是取第i个结点及其前驱,则采用 存储方式最节省时间。单链表 双链表 单循环链表 顺序表第三章 Chapter 3 栈(st

13、acks)和队列(queues)1、 栈是限定仅能在表尾一端进行 插入、删除 操作的线性表。2、 栈的特点是“后进栈的元素先出栈” (last in, first out),故栈又 称为后进先出表( LIFO)。3、 一个栈是一些元素的线形列表,其中元素的插入和删除均在表的同一端进行。插入和删除发生的一端称为栈顶 (the top of thestack)。4、 第一个进栈的元素在栈底,5、 最后一个进栈的元素在栈顶, 第一个出栈的元素为栈顶元素, 最后一个出栈的元素为栈底元素。6、 连续栈(Contiguous Stack的类型定义#define MaxStack 50Typedef structdatatype stackMaxStack;int top;Seqstack;Seqstack *s;7、 判断栈是否已满viod Push(Seqstack *s, datatype x )if (s-top=MaxStack-1) printf(“ overflow ” ); else s- top+;s-stacks-top=x;8、 判断栈是否为空datatype pop(Seqstack *s ) if (s-topstacks-top); s-top-;9、 返回栈顶元素的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1