
数据结构算法
冗萇的夏
这个作者很懒,什么都没留下…
展开
-
java实现顺序表
顺序表是线性表顺序存储的实现。以下是本人实现的一个的顺序表,功能比较简单。大家觉得有可以改进的地方可以提出来哈。/** * 自己实现的顺序表 * */public class ArrayList { // 顺序表的最大长度 private static final int MAX_SIZE = Integer.MAX_VALUE - 1; // 顺序表的长度 priv原创 2015-05-06 11:23:08 · 381 阅读 · 0 评论 -
java实现循环链表
在单链表中,如果把终端节点的引用指向头结点,就使整个链表形成以个环。这种链表称为循环链表。链表中的节点代码:public class Node { private T data; //数据 private Node next; //下一个节点的引用 public T getData() { return data; } public void setData(原创 2015-05-06 11:31:45 · 611 阅读 · 0 评论 -
java实现单向链
链表是一种重要的数据结构,在程序设计中占有很重要的地位。C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指针,所以有人认为在Java语言中不能实现链表,其实不然,Java语言比C和C++更容易实现链表结构。Java语言中的对象引用实际上是一个受限制的指针,所以我们可以编写这样的类来实现链表中的结点。 public class Node {private T原创 2015-05-06 11:04:52 · 425 阅读 · 0 评论 -
java实现顺序栈
栈是限定仅在表尾进行插入和删除操作的线性表,允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈为空栈。栈的顺序存储结构为顺序栈。通常把数组中下标为0的一端作为栈底,同时附设指针top指向栈顶元素的位置,栈空时top = -1。以下是java实现顺序栈的代码:package com.dhy.seqstack;/** * 顺序栈 * @author Admini原创 2015-05-07 09:50:15 · 502 阅读 · 0 评论 -
java实现循环队列
队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端称为队尾,允许删除的一端称为对头。 循环队列是为了解决假溢出。 假溢出: 把存储队列的数组看成是收尾相接的循环结构,即允许队列直接从数组下标最大位置延续到最小位置(通过取摸很容易实现)。循环队列示意图: 如上图所示,判断队列空和满天偶见都是原创 2015-05-07 10:36:27 · 505 阅读 · 0 评论 -
两栈共享空间(java实现)
如果我们有两个相同类型的栈,我们为他们各自开辟了数组空间,极有可能第一个栈已经满了,再进栈就溢出了,而另一个栈还有很多存储空间空闲。这时,我们可以充分利用顺序栈的单向延伸的特性,使用一个数组来存储两个栈,让一个栈的栈底为数组的始端,另一个栈的栈底为数组的末端,每个栈从各自的端点向中间延伸。如下图所示: 其中,top1和top2分别为栈1和栈2的栈顶指针,size为整个数组空间的原创 2015-05-07 10:06:57 · 3308 阅读 · 1 评论