网站大量收购独家精品文档,联系QQ:2885784924

第一部分数据结构和算法.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.队列及其基本运算 队列是指允许在一端进行插入,而在另一端进行删除的线性表。 是 “先进先出” 或“后进后出”的原则。 允许插入的一端称为队尾,允许删除的一端称为排头(也称为队头). 在队列这种数据结构中, 最先插入的元素将最先能够被删除,反之, 最后插入的元素将最后才能被删除。因此, 队列又称为先进先出 或后进后出的线性表, 它体现了先来先服务的原则。往队列的队尾插入一个元素称为入队运算,从队列的排头删除一个元素称为退队运算。 a1,a2,…,an 入队 出队 队头 队尾 数据结构与算法——考点4:栈和队列 3. 循环队列及其运算 循环队列就是将队列存储空间的最后一个位置绕到第1个位置, 形成逻辑上的环状空间,供队列循环使用。 数据结构与算法——考点4:栈和队列 1.线性链表的基本概念 线性表的链式存储结构称为线性链表。在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。 数据结构与算法——考点5:线性链表 线性链表: 为了适应线性表的链式存储结构,计算机存储空间被划分为一个一个的小块,每一小块占若干字节,通常称这些小块为存储结点。为了存储线性表中的每一个元素,一方面要存储数据元素的值,另一方面要存储各数据元素之间的前后件关系。为此目的,将存储空间中的每一个存储结点分为两部分: 一部分用于存储数据元素的值,称为数据域 ; 另一部分用于存放下一个数据元素的存储序号(即存储结点的地址), 即指向后件结点,称为指针域 数据结构与算法——考点5:线性链表 在线性链表中,用一个专门的指针 HEAD 指向线性链表中第1 个数据元素的结点 ( 即存放线性表中第 1 个数据元素的存储结点的序号 ) 。线性表中最后一个元素没有后件,因此,线性链表中最后一个结点的指针域为空 ( 用 NULL 或 O 表示 ), 表示链表终止。 线性链表的逻辑结构如下图所示。 HEAD 数据1 数据2 数据n \\NNnnnnnnnn1 NULL 数据结构与算法——考点5:线性链表 2.线性链表及其基本运算 (1)线性链表的插入(2)线性链表的删除 (3)线性链表的查找 线性链表的插入是指在链式存储结构下的线性表中插入一个新元素。 为了要在线性链表中插入一个新元素,首先要给该元素分配一个新结点p,并赋值。然后找到待插入位置的前一个结点的指针q。先将p指向q的后件,然后将p挂接在q结点后面。 数据结构与算法——考点5:线性链表 线性链表的删除是指在链式存储结构下的线性表中删除包含指定元素的结点。 为了在线性链表中删除包含指定元素的结点,首先要在线性链表中找到待删除元素的前一个结点p,用另一个指针q保存p的后续结点,然后把q结点的后续链挂接在p的后面。最后归还q结点所分配的栈空间。 线性链表的查找过程是从头指针指向的结点开始向后沿指针进行扫描,直到后面已没有结点或下一个结点的数据域为搜索值x为止。 数据结构与算法——考点5:线性链表 1.树的基本概念 M F G L C H X Y S W Z A B E N O T R K P Q D 数据结构与算法——考点6:树与二叉树 树是一种简单的非线性结构,在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点。没有后件的结点称为叶子结点。 2、树的一些常用术语。 结点:结点由数据元素和构造数据元素之间关系的指针组成。例如,图中有22个结点。 结点的度:结点所拥有的子树的个数称为该结点的度。例如,在上图中,结点R的度为4,结点K的度为2,结点M的度为0。 树的度:树中所有结点中的最大度称为该树的度。例如,上图R的度等于4是该树中所有结点的度的最大值,所以该树的度为4。 数据结构与算法——考点6:树与二叉树 叶子结点:没有后件的结点称为叶子结点,叶子结点也称做终端结点。结点C、E、M、F、G等均为叶子结点。 结点的层次:从根结点到树中某结点所经路径上的分支数称为该结点的层次。根结点的层次规定为1,这样其他结点的层次就是它的前件的层次加1。 树的深度:树中所有结点的层次的最大值称为该树的深度。上图中树的深度等于5。 数据结构与算法——考点6:树与二叉树 子树:在树中,以某结点的一个子结点为根构成的树称为该点的一棵子树。如结点R有4棵子树。叶子结点没有子树。 森林:m(m≥0)棵树的集合称为森林。自然界中树和森林的概念差别很大,但在数据结构中树和森林的概念差别很小。从定义可知,一棵树由根结点和m个子树组成,若把树中的根结点删除,则树就变成了包含m棵树的森林。当然,根据定义,一棵树也可以称做森林。 数据结构

文档评论(0)

134****9146 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档