第1章-计算机科学技术的基础知识.ppt

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

② 线性表的基本操作:线性表是一种相当灵活的数据结构,对线性表的数据元素不仅可以进行访问,还可以进行插入和删除等操作。 常见的线性表基本操作有: (a) InitList(L):构造空的线性表L,即表的初始化。 (b) ListLength(L):求线性表L中的数据元素的个数, (c) GetNode(L,i ):取线性表L中的第i个结点,要求 1≤i≤ListLength(L)。 (d) LocateNode(L,x ):在L中查找x结点,并返回该 结点在L中的位置。若L中有 多个结点的值和x相同,则返 回首次找到的结点位置;若L 中没有x结点,则返回一个特 殊值表示查找失败。 ???????? (e) InsertList(L,x,i ):在线性表L的第i个位置前 插入新结点x。如果线性 表L原有n个数据元素,则 执行此操作后,其数据元 素个数将变为n+1。 (f) DeleteList(L,i ):删除线性表L的第i个结点, 如果线性表L原有n个数据元 素,则执行此操作后,其数 据元素个数将变为n-1。 ???????? ③ 线性表的存储结构:将一个线性表存储到计算机中可以采用许多不同的方法,常采用的方法有顺序存储结构和链式存储结构。 线性表的顺序存储是把线性表的数据元素按逻辑次序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表称为顺序表。 设线性表的每个元素占用C个存储单元,第一个单元的存储地址是该元素的存储地址,设表中开始第一个元素a 1的存储地址是Loc(a 1),那么线性表中的第i个数据元素a i 的存储地址为: Loc(a i)=Loc(a 1) + (i-1) * C 1≤i≤n 确定了存储线性表的起始地位置,线性表中任一数据元素都可随机存取,所以说线性表的顺序存储结构是一种随机存取的存储结构。 ??? 高级语言中数组类型也有随机存取的特性,因此通常采用一维数组来描述顺序表。 线性表顺序存储结构的优点:可以随机存取表中任一结点,实现对线性表的某些操作比较简单,如:计算线性表的长度、存取线性表中的任意一个结点、查找线性表中某一元素等等。 缺点是在实现线性表的插入和删除操作时,则需要移动大量数据元素而花费较多的时间。 链式存储结构是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以连续,也可以不连续,甚至是零散分布在内存中的任何位置上,因此为了表示每个数据元素a i与其直接后继数据元素a i+1 之间的逻辑关系,除了存储其自身的信息外,还需存储指示直接后继的信息。 这样,线性表每个数据元素的存储表示包括两个域:存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。有n个元素的线性表每个数据元素之间通过指针连接成为一个链式的结构,因此又称其为链表。 链表的优点:插入、删除操作简单,只须修改相 应的指针域。 缺点:不能随机存取线性表中数据元素,只能顺 序存取,所以实现查找操作比较繁琐。 ★ 栈(Stack) 栈是特殊的线性表,它的逻辑结构和线性表相同,只是其基本操作较线性表有更多的限制,故又称是受限的线性表。栈被广泛应用于各种程序设计中。 ① 栈的定义:栈是限制仅在表的一端(即表尾)进行插入和删除操作的线性表,通常称插入、删除这一端为栈顶(Top),另一端称为栈底(Bottom)。当表中没有元素时称为空栈。栈的示意图如下: ② 栈的基本操作: (a) InitStack(S): 构造一个空栈S。 (b) StackEmpty(S):判栈空。若S为空栈,则返回 TRUE,否则返回FALSE。 (c) StackFull(S): 判栈满。若S为满栈,则返回

文档评论(0)

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

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

1亿VIP精品文档

相关文档