上次说了动态数组的组成以及结构,这次就再深入一点,讲讲关于链表、树这两种数据结构。

     链表其实跟动态数组有点相似,都是线性结构,但是一个是逻辑上连续,一个是地址上也连续。链表的基本结构一个个链表结点,结点中有两个数据,一个是要储存的数据,一个是下一个结点的地址。

java数据结构源代码 java数据结构怎么写_数据结构与算法

以上是创建结点的代码

java数据结构源代码 java数据结构怎么写_java_02

以上是创建链表的代码

链表里可以创建许多方法  比如增添结点,按结点位置搜索结点,按结点内容搜索结点,删除结点等等。

以下,只用删除结点的代码举例:

java数据结构源代码 java数据结构怎么写_二叉树_03


 

树是有多个子结点的数据结构,而现在先只讨论二叉树,以下会用与上面相同格式的代码给出树的创建过程

首先是二叉树树结点的构造:

java数据结构源代码 java数据结构怎么写_链表_04

    因为接下来要演示二叉树的例子,我把一串需要计算的字符串输入,把数据存储在二叉树里,进行计算。

以下是树的建立:

java数据结构源代码 java数据结构怎么写_结点_05


 我需要的功能放在借口里:

java数据结构源代码 java数据结构怎么写_数据结构与算法_06


  以下将四个方法的代码给出:

java数据结构源代码 java数据结构怎么写_数据结构与算法_07

java数据结构源代码 java数据结构怎么写_二叉树_08


 

java数据结构源代码 java数据结构怎么写_java_09


 

 按照这样的方法,可以熟悉二叉树这种数据结构的创建,遍历,以及应用。