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

来源:互联网 发布:ai软件工具栏不见了 编辑:程序博客网 时间:2024/06/10 17:49

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

栈 :先进先出

队列:先进后出

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

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

1)栈   Stack

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

栈的数组实现:


栈的链表实现:


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

队列数组的实现:


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

双向链表:




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

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

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





0 0
原创粉丝点击