java中的数据结构

1. 概念

表示一组数据元素及其相互关系的数据结构有两种不同的表现形式:

    逻辑结构

        逻辑层面上数据之间的关系。一般可分为:线性结构非线性结构(集合、树、网)

    存储结构

        我们可以理解为是逻辑结构用计算机语言来实现。常见有:顺序存储链式存储索引存储散列存储(哈希表)。

2. 逻辑结构

 我们可以通过二元组图形来描述数据的逻辑结构。

     数据结构的二元组表示形式为:数据结构={D,S}.其中D是数据元素的集合,S是D中数据元素之间的关系集合

     2.1 集合结构

     一个数据结构的二元组表示为:

                set=(K,R),其中

                K={01,02,03,04,05}

                R{}

    可以看出在数据结构set中,关系集合为空,因而数据元素之间除了同属一个集合之外没有任何关系,该结构只考虑数据元素而不考虑之间的关系,我们称这种数据结构为集合结构

图形表示非常直观:


    2.2 线性结构

            linearitry=(K,R),其中

            K={01,02,03,04,05}

            R{<02,04>,<03,05>,<05,02>,<01,03>}

    可以看出,数据元素是有序的,元素01为第一个,元素04为最后一个。除了首尾元素,其他每个元素有且只有一个直接前驱元素和一个直接后续元素。这种数据结构的特点是数据元素之前是1对1的联系,即线性关系,我们称为线性结构


    2.3 树结构

            tree=(K,R),其中

            K={01,02,03,04,05}

            R{<01,02>,<01,03>,<02,04>,<02,05>,<03,06>}

    可以看出,除了一个数据元素(根元素)以外,每个数据元素有且只有一个直接前驱元素,但可以有多个直接后续元素。其特点是数据元素之间是1对N的联系,我们把这种特点的数据结构称为树结构


    2.4 图结构

            graph=(K,R),其中

            K={01,02,03,04,05}

            R{<01,02>,<01,05>,<02,01>,<02,03>,<02,04>,<03,02>,

               <04,02>,<04,05>,<05,01>,<05,04>}

    可以看出,每个数据元素可以有多个直接前驱元素,也可以有多个直接后续元素。其特点是数据元素之间是N对M的联系,我们把这种特点的数据结构称为图结构




猜你喜欢

转载自blog.csdn.net/TanSHooo/article/details/80346582