几种常见的数据结构的java实现

常见的数据结构有  栈  队列  链表  二叉树 

栈 :先进先出

队列:先进后出

对数据结构的操作常见的有  增 删 改 查

下面分别介绍这几种数据结构的实现方式:

1)栈   Stack

栈可以用数组实现也可以用列表实现,两种方式均有top变量来标识栈顶,maxSize来标识栈的最大容量,栈的常见方法为push  pop  peek  isEmpty  isFull(通过top  和 maxSize来判断)

栈的数组实现:

几种常见的数据结构的java实现_第1张图片

栈的链表实现:

几种常见的数据结构的java实现_第2张图片

对于队列而言是先进先出,故有两个指针(位置的标识)来分别对队头和队尾进行标识,从队头删除元素,从队尾增加元素,为了避免队列不满而不能插入新的数据项,可以让队尾增加到足够多的元素时回到队头,这称为循环队列。

队列数组的实现:

几种常见的数据结构的java实现_第3张图片

链表分为单向链表、双向链表和循环链表,本文介绍了双向链表和循环链表的实现

双向链表:

几种常见的数据结构的java实现_第4张图片

几种常见的数据结构的java实现_第5张图片

几种常见的数据结构的java实现_第6张图片

在链表的实现类里定义了节点的内部类,双向链表的属性里有链表头和链表尾,往链表中增加元素时一定要判断链表头是否为空。

由于增加元素、删除元素、改变元素均涉及到对下标index的引用,故在方法的开头必须对index的值进行检查,故在链表的实现类里面封装了checkIndex函数。

下面是循环链表的实现类,循环链表属性里只有链表头,链表尾的下一个节点指向链表头,链表尾是链表头的上一个节点,故增加元素是在链表头和链表头的上一个元素之间增加元素。

几种常见的数据结构的java实现_第7张图片

几种常见的数据结构的java实现_第8张图片



你可能感兴趣的:(java)