链表<o:p></o:p>
class Node {<o:p></o:p>
Object item; Node next;<o:p></o:p>
Node (Object v) {<o:p></o:p>
item = v; next = null;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
头指针,空尾指针<o:p></o:p>
初始化:head = null;<o:p></o:p>
在x后插入t:<o:p></o:p>
if ( x == null)<o:p></o:p>
{ head = t; head.next = null; }<o:p></o:p>
else { t.next = x.next; x.next = t; }<o:p></o:p>
移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>
循环遍历:for ( t = head; t != null; t = t.next )<o:p></o:p>
检查链表是否为空:if ( head == null )<o:p></o:p>
空头结点,空尾指针<o:p></o:p>
初始化:head = new Node(); head.next = null;<o:p></o:p>
在x后插入t:t.next = x.next; x.next = t;<o:p></o:p>
移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>
循环遍历:for ( t = head.next; t != null; t = t.next )<o:p></o:p>
检查链表是否为空:if ( head.next == null )<o:p></o:p>
空头结点,空尾结点<o:p></o:p>
初始化:head = new Node(); z = new Node(); head.next = z; z.next = z;<o:p></o:p>
在x后插入t:t.next = x.next; x.next = t;<o:p></o:p>
移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>
循环遍历:for ( t = head.next; t != z; t = t.next )<o:p></o:p>
检查链表是否为空:if ( head.next == z )<o:p></o:p>
循环链表<o:p></o:p>
第一次插入:head.next = head;<o:p></o:p>
在x后插入t:t.next = x.next; x.next = t; <o:p></o:p>
移走x之后的结点:t = x.next; x.next = t.next;<o:p></o:p>
循环遍历:t = head; do { t = t.next; } while ( t != head );<o:p></o:p>
检查是否只有一个数据项:if ( head.next == head )<o:p></o:p>
<o:p> </o:p>
堆栈<o:p></o:p>
数组实现<o:p></o:p>
class Stack {<o:p></o:p>
private Object[] s;<o:p></o:p>
private int n;<o:p></o:p>
Stack ( int maxN ) {<o:p></o:p>
s = new Object[maxN]; n = 0;<o:p></o:p>
}<o:p></o:p>
boolean isEmpty() { return ( n == 0 ); }<o:p></o:p>
void push ( Object item ) { s[n++] = item; }<o:p></o:p>
Object pop() {<o:p></o:p>
Object t = s[--n]; s[n] = null; return t;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
链表实现<o:p></o:p>
class Stack {<o:p></o:p>
private Node head;<o:p></o:p>
private class Node {<o:p></o:p>
Object item; Node next;<o:p></o:p>
Node ( Object item, Node next ) {<o:p></o:p>
this.item = item; this.next = next;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
Stack ( Object maxN ) { head = null; }<o:p></o:p>
boolean isEmpty() { return ( head ==null ); }<o:p></o:p>
void push ( Object item ) { head = new Node(item, head); }<o:p></o:p>
Object pop() {<o:p></o:p>
Object v = head.item;<o:p></o:p>
Node t = head.next;<o:p></o:p>
head = t;<o:p></o:p>
return v;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
FIFO队列的链表实现<o:p></o:p>
class Queue {<o:p></o:p>
private class Node {<o:p></o:p>
Object item; Node next;<o:p></o:p>
Node ( Object item ) {<o:p></o:p>
this.item = item; this.next = null;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
Private Node head, tail;<o:p></o:p>
Queue ( Object max ) { head = null; tail = null; }<o:p></o:p>
boolean isEmpty() { return ( head ==null ); }<o:p></o:p>
void put ( Object item ) {<o:p></o:p>
Node t = tail;<o:p></o:p>
tail = new Node(item);<o:p></o:p>
if ( empty() )<o:p></o:p>
head = tail;<o:p></o:p>
else t.next = tail<o:p></o:p>
}<o:p></o:p>
Object get() {<o:p></o:p>
Object v = head.item;<o:p></o:p>
Node t = head.next;<o:p></o:p>
head = t;<o:p></o:p>
return v;<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
分享到:
相关推荐
JAVA实现链表 有序二叉树 队列的代码例子
java中基本的 站 队列等基本数据结构。
本书的目的是从抽象思维和问题求解的观点提供对数据结构的实用介绍,试图包含有关数据结构、算法分析及其Java实现的所有重要的细节。作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据...
设计实现经典扫雷游戏,要求如下: (1) 分初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出所有地雷 且用时最少者。 (2) 选择级别后出现相对应级别的扫雷区域,用户使用鼠标左键单击雷区中...
基本算法与数据结构的Java实现
《数据结构(Java版)(第4版)》数据结构与算法”是计算机学科各专业的专业基础课程,在本科教学中,起着非常重要的作用。数据结构是软件设计的重要理论和实践基础,数据结构设计和算法设计是软件系统设计的核心。 ...
数据结构(Java语言描述) 案例06 舞伴配对问题.docx 学习资料 复习资料 教学资源
本书的目的是从抽象思维和问题求解的观点提供对数据结构的实用介绍,试图包含有关数据结构、算法分析及其Java实现的所有重要的细节。作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据...
Java数据结构 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用...
Java版数据结构,包含基础数据结构的Java实现也包含高级数据结构的算法实现,对于基本的图算法也有其Java实现版本
多种数据结构的Java实现(精),JAVA数据结构与算法,基本数据结构的JAVA实现,JAVA容器分析,HASHSET,堆栈STACK结构,链表QUEUE,算法研究
模拟通讯录,设计相关数据结构,用菜单选择方式实现:通讯录的建立、通讯联系人的插入、删除、修改、查找等功能。
其基本功能包括: (1) 输入并建立多项式; (2) 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,......,cn,en,其中 n 是 多项式的项数,ci,ei分别是第 i 项的系数和指数,序列按指数降序排序; (3) ...
本书选择Java语言以面向对象的方式描述数据结构,还特别强调了封装和分解的信息隐藏原理。主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2...
本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构。 八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序...
2.1基本任务 对于所有的学生,不管其基础或层次如何,都必须完成一定的基本任务,那就是用程序验证各种逻辑结构的基本实现和算法,在实验的总体结构中实现函数的编写、测试、调试、验证,通过数据结构Java语言描述...