下载此文档

论文--基本数据结构在信息学竞赛中的应用.doc


文档分类:IT计算机 | 页数:约29页 举报非法文档有奖
1/29
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/29 下载此文档
文档列表 文档介绍
基本数据结构在信息学竞赛中的应用目录摘要 2关键字 2正文 2引言 2第一部分——基本数据结构的介绍 3一、线性表..................................................................3二、栈 5三、队列......................................................................5第二部分——基本数据结构的应用 6一、栈的应用 6二、线性表的应用 10三、队列的应用 12总结 16参考文献 16感谢 16附录 17摘要 本文介绍了几种基本数据结构(例如线性表、队列)在信息学竞赛中的应用,并通过文中的几道例题集中体现了这些数据结构的重要作用。全文可以分为如下几个部分:介绍几种常用的基本数据结构;通过几道例题说明基本数据结构的重要作用;总结全文并探讨应用基本数据结构在思想上带来的启示。关键字基本数据结构 线性表队列 双向链表 栈编程复杂度时间复杂度辨证关系螺旋式发展正文引言在当今的信息学竞赛中,各种高难度的题目层出不穷。而与这些题目相伴而来的便是很高的编程复杂度。随着计算机科学的不断进步,有越来越多高效而实用的数据结构应运而生。但是,其惊人的编程复杂度使得我们在比赛时必须小心翼翼,慎之又慎,并且经常因为一个微小的疏漏而导致全盘皆输。然而,并非所有的题目都只能运用复杂的数据结构加以解决。有些时候,常常被我们忽略的基本数据结构也大有用武之地。灵活地运用基本数据结构,可以使我们在紧张的信息学比赛中赢得宝贵的时间,增加成功的概率。第一部分——基本数据结构的介绍其实,这一部分的内容可以在所有介绍数据结构的书中找到,这里只做比较简单的介绍。线性表线性表是最常用且最简单的一种数据结构。简言之,一个线性表是n个数据元素的有限序列。对线性表进行的基本操作有如下几种: 1) INITIATE(L) 初始化操作 2) LENGTH(L)求长度函数 3) GET(L,i) 取元素函数 4) PRIOR(L,element) 求前驱函数 5) NEXT(L,element) 求后继函数 6) LOCATE(L,x) 定位函数 7) INSERT(L,i,b)前插操作 8) DELETE(L,i)删除操作 9) EMPTY(L) 判空表操作 10) CLEAR(L) 表置空操作线性表的顺序存储结构在计算机内,可以用不同的方式来表示线性表,其中最简单和最常用的方式是用一组地址连续的存储单元依次存储线性表的元素(即我们通常所说的“一维数组”)(如图1)。存储地址内存状态元素在线性表中的序号ba11b+La22………………b+(i-1)Laii………………b+(n-1)Lannb+nL……b+(maxlen-1)L图1空闲 应用这种存储结构,可以实现对线性表中任一数据元素的随机存取。所以线性表的顺序存储结构是一种随机存取的存储结构。在Pascal与C语言中可以用一维数组描述之。可以很容易证明,在线性表的顺序存储结构中,删除与插入任意一个元素的时间复杂度为O(N),而定位一个元素的时间复杂度为O(1). 线性表的链式存储结构线性链表线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素。对于每个数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息。这两部分信息组成数据元素ai的存储映象,称为结点,其中包括存储数据元素信息的数据域和存储直接后继存储位置的指针域(称为指针或链)。n个节点的链组成一个链表,称为线性链表或单链表(如图2)。head图2ZHAOQIANSUN其中head为头节点,它的指针域存储第一个元素结点的存储位置。循环链表循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环(如图3)。head图3ZHAOQIANSUN双向链表顾名思义,双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前驱。当然,双向链表也有循环表,其结构如图4所示。head图4ZHAOQIANSUN 可以很容易证明,在线性表的链式存储结构中,删除与插入任意一个已经定位的元素的时间复杂度为O(1),而定位一个元素的时间复杂度为O(N).栈栈是限定仅在表尾进行插入或删除操作的线性表。因此,表尾端称为栈顶,相应地,表头端称为栈底。不含元素的空表称为空栈。根据图5可以很明显地看出,栈的修改是按后进先出的原则进行的。因此,栈又称后进先出(LastInFirstOut)的线性表(简称LIFO结构)。栈的基本操作有: INISTACK(S) 初始化操作 EMPTY(S) 判栈空操作 PUSH(S,x) 入栈操作 POP(S,x) 出栈函数 GETTOP(S) 取栈顶元素函数 CLE

论文--基本数据结构在信息学竞赛中的应用 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数29
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zl201163zl
  • 文件大小225 KB
  • 时间2019-07-16