说明:文章的数据结构是基于Java总结的,java中使用的数据结构就是数组和引用(就是指针)
常用的数据结构有栈,队列,链表,树,图等的数据结构的定义。
个人觉得了解一种数据结构必须了解它的定义,明白了定义我们就知道如何去扩展。
栈 –>本质是数组
java中Stack类继承自Vector,而Vector的实现是基于数组的
队列 –>本质也是数组
Java中常用的队列就是PriorityQueue 其实现是基于数据的
链表一般会分为单链表,循环链表,双向链表
链表,链表顾名思义就是要连起来么,即当前数据应该了下一个数据是有关联的。
单链表的基本结构的定义
|
|
循环链表的数据结构和单链表相同,只是最后一个元素和第一个元素相连,单链表的最一个元素是null,
双向链表:从字面上理解可知道元素之间的关联是双向的,当前元素不仅和下一个有联系,应该和上一个元素也有关系。我们便可以在单链表的基础上修改成双链表,结构如下
|
|
树
树中最重要的莫过于二叉树了,二叉树树的数据结构和链表是类似的(树的一种比较极端的例子就是一棵树只有左子树或者只有右子树,那么其就够就是链表,其本质是相同的区别就在于怎么连)。至于其它树的结构在二叉树的基础上扩展即可,不再详细赘述。
|
|
图
s