您的位置:首页 > 理论基础 > 数据结构算法

【软考之路】-数据结构

2015-09-26 13:16 357 查看

1.何为数据结构?

官方来说,数据结构是计算机存储,组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合和该集合中数据元素之间的关系组成。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

2.表示

  Data_Stucture(D,R)

 其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。

3.构成

  数据的逻辑结构、存储结构、运算结构。

4.基本概念:

  1)数据:描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别并输入给计算机处理的符号集合。

  2)数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。

  3)数据项:一个数据元素可以由若干个数据项组成。是数据不可分割的最小单位。

  三者关系如下表所示:

 
 数据
数据元素
数据元素
数据项
数据项
数据项
数据项
 

  4)数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

  5)逻辑结构:是指数据对象中数据元素之间的相互关系。

  6)集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。

            


7)线性结构:数据元素间是一对一的关系。

   a.基本结构

          

       
                   

   b.表现形式

     【线性表】
      含义:零个或多个数据元素的有限序列。

      存储:顺序存储、链式存储(单链表、循环链表、双链表)

      操作:建表;初始化;插入、删除、读取、移动数据。

     【栈和队列】
       含义:栈是限定仅在表尾进行插入和删除操作的线性表。(先进后出)

             队列式只允许在一端进行插入操作、而在另一端进行删除操作的线性              表。(先进先出)

       栈和队列式线性表的特殊表现形式,其他同上。        

8)树形结构:元素之间存在一种一对多的关系。

   a.基本结构

       


   b.相关概念

           结点:包含一个数据元素及若干指向其子树的分支。

           度:结点拥有的子树数称为结点的度。

           叶节点:度为0的结点

           分支结点:度不为0的结点

           树的深度:树中结点的最大层次

   c.关系:父子、兄弟、子孙

   d.特殊表现:二叉树

        定义:二叉树是n个结点的有限集合,该集合或者为空集,或者由一个跟结         点和两棵互不相交的、分别称为跟结点的左子树和右子树的二叉树组成。

        特点:每个结点最多有两棵子树;左子树和右子树是有顺序的;即使树中         某结点只有一颗子树,也要区分其左子树和右子树。

        分类:

          完全二叉树、满二叉树、斜树

          线索二叉树

          哈弗曼树:带权路径 长度最小的二叉树。(最优二叉树)

        特征:

           .在二叉树的第i层上至多有2的i-1次方个结点;

           .深度为k的二叉树至多有2的k次方减1个结点。

           .对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则              n0=n2+1;

        存储:顺序存储、二叉链表。

        遍历:

             


          前序:先访问跟结点,顺序访问左右子树;(ABDECF)

          中序:先访问左子树、再访问根节点、访问右子树(BDEACF)

          后序:先访问其左右结点、后访问根节点(BDECFA)

          层次:分层,从上而下逐层遍历。(ABCDEF)

        转换:

           树转换为二叉树:



           森林转换为二叉树:



           二叉树转换为树:

  


           二叉树转换为森林:



9)图形结构:数据元素是多对多的关系。

   基本结构

             

   
    

10)物理结构:

   a.顺序存储:把数据元素存放在地址连续的存储单元里,其数据间逻辑关系和物理关系是一致的。

1
2

 3

 4

 5

 6

 7

 8

 9

  b.链式存储:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的也可是不连续的。

    

 
                    

 小结:

数据结构导论这部分的知识很重要,这篇博客是对其基础知识的系统总结。对其逻辑结构和物理结构进行了详细介绍,但是对于其中的二叉树、排序、算法等还需要进一步研究。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: