• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 事迹材料
  • 申请书
  • 作文大全
  • 读后感
  • 调查报告
  • 励志歌曲
  • 请假条
  • 创先争优
  • 毕业实习
  • 财神节
  • 高中主题
  • 小学一年
  • 名人名言
  • 财务工作
  • 小说/有
  • 承揽合同
  • 寒假计划
  • 外贸信函
  • 励志电影
  • 个人写作
  • 其它相关
  • 生活常识
  • 安全稳定
  • 心情短语
  • 爱情短信
  • 工会工作
  • 小学五年
  • 金融类工
  • 搞笑短信
  • 医务工作
  • 党团工作
  • 党校学习
  • 学习体会
  • 下半年工
  • 买卖合同
  • qq空间
  • 食品广告
  • 办公室工
  • 保险合同
  • 儿童英语
  • 软件下载
  • 广告合同
  • 服装广告
  • 学生会工
  • 文明礼仪
  • 农村工作
  • 人大政协
  • 创意广告
  • 您现在的位置:六七范文网 > 个人写作 > 正文

    【试论C++语言在数据结构中应用】数据结构C

    来源:六七范文网 时间:2019-04-17 04:46:26 点击:

      【摘 要】数据结构是面向过程编程中的一个重要概念,即使在面向对象编程中也具有重要的地位,因为面对繁多而复杂的待处理数据,如果没有数据结构将数据组织起来,那么程序的编写将变得极为艰难。在整个程序编写的过程中,数据结构为编程中的法,而使用的语言就是编程中的术。在该文中将试析C++语言如何在数据结构中的运用,如何发挥出数据结构更好的效果。
      【关键词】C++;数据结构;计算机语言
      C++语言是从C语言继承而来,并从C语言的基础上增加了很多新的特性以适应新的技术要求。应该说C++是一个庞大的功能强悍的一种语言,它既可以完成与C语言一样的面向过程编程也可以完成面向对象编程。在面向过程编程中,C++也同样完成了对C语言的扩展,增加了很多的库与函数,这些库与函数的存在赋予了C++在数据结构的运用中超过C语言的能力。可以说,C++在数据结构中的运用灵活程度与使用方法超过了C语言。在数据与数据之间存在着各种各样的关系,这些关系称之为结构,而数据结构就是数据元素之间特定关系的集合。数据结构可以分为很多部分,但是基本结构主要有四种,这四种分别是:集合、线性结构、树形结构、图状结构。这四种基本的四类结构相互复合便可以组成成千上万中不同的数据结构。该文主要探讨C++语言对于一些常见结构的运用,也就相当于从底层讲述C++在数据结构中的运用。
      1.数据的逻辑表示、存储形式和操作
      要描述一组关联的数据元素,必然是一种抽象,一种逻辑的表示形式。这种逻辑表示应该独立于计算机,是数据元素本身所固有的。显然,这样的一组数据元素的逻辑结构应该包括数据元素本身和数据元素之间的联系。当一组关联的数据元素存储到计算机中时,必然以一种物理的形式组织和存放在计算机存储器中,它应该是这组数据元素的逻辑结构在计算机存储器中的映像,是依赖于计算机的。这种映像是这组数据元素的存储结构,它也能够体现数据元素本身以及数据元素之间的联系。就存储结构本身而言,它不体现任何相关的操作,只是对操作的方式会提出要求并产生影响。当对一组关联的数据元素进行加工处理时,相对应的则是一组相关的操作,这样的一组操作称为施加在这组数据元素之上的运算。运算的定义依赖于数据元素的逻辑结构,而运算的实现则依赖于存储结构,是通过计算机语言完成的,是对数据进行加工处理的方法和动态过程的描述。如果说数据结构这门课程包括了数据的逻辑结构、数据的存储结构和对数据所施加的运算等诸多方面的内容是行得通的。但如果说数据结构包括这3方面的内容则显得过于宽泛。数据结构应该是一组数据元素的静态结构的描述,它应该包括逻辑层面和物理层面两个方面。在逻辑层面上而言,是数据和数据之间关系的一种逻辑的描述形式,可以采用文字描述或采用图形方式来表示,也可以用数学的符号形式加以定义;在物理层面上而言,则是数据和数据之间关系在计算机存储器中的体现,同样也是一种静态结构形态。这种静态结构是不可见的,为了便于理解,这种形态也可以用文字描述或图形描述的方式逻辑地加以表示。或者说,数据结构是一组数据元素的全体以及数据元素之间的关系的全体,在逻辑层面上称为数据的逻辑结构,在物理层面上称为数据的存储结构。也可以说数据的存储结构是数据的逻辑结构在计算机存储器中的映像。典型的数据结构有集合结构、线性结构、树形结构和图形结构,它们都有逻辑的表示形式和物理的存储形态。数据的存储又有两种最基本的存储方式,即顺序存储方式和链接存储方式,散列和索引则是两种基本方式的复杂应用。这是为了便于数据的处理而采用的两种不同的存储技术,而不是数据结构的差异。
      2.在线性结构中的运用
      线性具体的表现形式有好多种,如线性链表、双向链表、堆栈、队列等,但是这些结构都有着共同的特性,它们都是唯一的一个开头的数据元素,也有唯一的一个最后的数据元素等,且除了第一个与最后一个元素外,每个元素都有唯一的前驱与后驱。这使得线性表的结构相对于其他的数据结构比较简单,更容易掌握,所以对于线性结构的使用也是最多的。在线性结构中,一个数据元素的寻找自己的前驱或者后驱有两种方式,这取决于这个线性结构在内存中的存储方式。线性结构在内存中的存储不一定是线性的,比如链表就不是线性的。线性结构的操作主要有三个,分别是插入、删除、修改。如果一个线性结构在内存中的存储也是线性的话,其操作会相对简单些,在C++语言中,可以直接使用C++提供的强大的运算速度处理数据元素,但是相对来讲复杂些,且这种操作手法与使用C语言操作线性结构的手法别无二致。除以上方法外,用户也可以使用C++的各种各样的容器,很多的容器都是各种类型的线性结构,使用这些容器就可以大大的减少操作线性结构的代码。至于C++实现代码究竟用的是内存非线性存储还是线性存储不需要使用者关心,这部分对于C++的使用者来讲是透明的。
      3.在树中的运用
      树与图都是非线性结构,且树是一种非常重要的数据结构。在自然界中存在着很多的树形结构,为了计算机更好的处理这些数据,所以抽象出了树形结构。树形结构是由众多的节点所构成,有且仅有一个根节点,剩余的节点组成了互不交叉干涉的子集,也叫根的子树,实际编程中用到的树,往往是多层的树,除了最下层的节点外其他的都是一个子树,由于这种抽象的类型很像自然界中的树,所以称之为树形结构。树形结构与线性结构的不同在于树形结构中的节点对应一个前驱,但是往往对应多个后驱,其整体结构并不是顺序的,而是从上往下扩散开的结构,而且树也可以分作多种类型,这些树形结构都有各自的特点,如二叉树、平衡树等,这些树的存储、构建与维护也经常使用不同方法。
      对于C++语言来说,所有使用树形结构的要求都能满足。比如树的链接一般是多点链接,而计算机的存储空间是顺序的,所以树在计算机中存储往往不是连续的,必须用到指针,而C++的指针恰恰非常强大。
      4.在图中的运用
      图形结构是数据结构中最为复杂的一种结构模型。在线性结构中有且只有一个前驱以及后驱,在树形结构中节点只有一个前驱以及多个后驱,子树之间并无交叉联系,呈现明显的层次感,但是在图形结构中,整个集合中的任意两个数据元素都可以存在着关系,这就造成了复杂的图形结构。
      鉴于图形结构千差万别,所以C++语言中没有提供能够直接进行图操作的函数,仅有一些特定的基础操作,对于图形的处理,只能依靠程序编写者具体问题具体分析了。C++在图形数据结构的处理中,有以下的几个优点:
      (1)较高的代码效率。虽然C++的运算速度不如C语言与汇编,但是相对于其他的高级语言来讲,已经非常快了,处理复杂问题的图问题是一个很合适的选择。
      (2)灵活的指针。C++的指针往往是C++初学者难以运用的功能,但是拥有指针后能施展的能力确实非常强大的,特别是处理离散数据方面具有无可比拟的优势。
      (3)严密的逻辑。C++逻辑非常严密,易于编写种种复杂的算法用来处理复杂的图形问题。总的来说,在处理图形结构数据时,C++语言是除了C语言以外的最佳选择。
      【参考文献】
      [1]付勇.数据结构的定义及其相关术语[J].电脑编程技巧与维护,2011(10).

    推荐访问:数据结构 试论 语言