- 浏览: 218671 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
Wangwei86609:
非常好的规则引擎框架,支持决策树和多线程运行规则https:/ ...
规则引擎 -
hzxlb910:
真详细,收藏哈
maven setting.xml配置说明 -
东方胜:
[b][/b]
脚本语言 Tcl -
345161974:
hyw520110 写道345161974 写道这个Visua ...
Visual Tcl Binary 完整版(完美中文支持) -
hyw520110:
345161974 写道这个Visual Tcl Binary ...
Visual Tcl Binary 完整版(完美中文支持)
要实现单链表,首先要建立链表的节点类:
- /**
- * 单链表的节点类,单链表的实现。
- */
- package com.ty.third;
- /**
- * @author liming
- *
- */
- public class SLLNode<T> {
- //你要储存的信息单位
- public T info;
- //指向下一个元素
- public SLLNode<T> next;
- public SLLNode(T i)
- {
- this(i,null);
- }
- //第二个参数传入node是为了快速建立链表
- public SLLNode(T i, SLLNode<T> node)
- {
- this.info = i;
- this.next = node;
- }
- }
/** * 单链表的节点类,单链表的实现。 */ package com.ty.third; /** * @author liming * */ public class SLLNode<T> { //你要储存的信息单位 public T info; //指向下一个元素 public SLLNode<T> next; public SLLNode(T i) { this(i,null); } //第二个参数传入node是为了快速建立链表 public SLLNode(T i, SLLNode<T> node) { this.info = i; this.next = node; } }
然后,单链表类:
- package com.ty.third;
- public class SLLList<T>
- {
- protected SLLNode<T> head, tail;
- //当前的节点,用于遍历所有元素
- private SLLNode<T> cur = null;
- //创建一个空的单链表
- public SLLList()
- {
- head = tail = null;
- }
- //添加头节点
- public void addToHead(T info)
- {
- SLLNode<T> sllNode = new SLLNode<T>(info);
- //如果链表为空
- if(head == null)
- {
- head = sllNode;
- tail = head;
- }
- //链表不为空
- else
- {
- sllNode.next = head;
- head = sllNode;
- }
- }
- //打印所有链表节点
- public void printAllNode()
- {
- SLLNode<T> temp = null;
- for(prepare();hasNext();next())
- {
- temp = getNextNode();
- System.out.println(temp.info);
- }
- }
- //添加尾节点
- public void addToTail(T info)
- {
- SLLNode<T> sllNode = new SLLNode<T>(info);
- //链表为空,则直接创建头节点
- if(head == null)
- {
- addToHead(info);
- }
- //链表不为空,加到链表尾部
- else
- {
- tail.next = sllNode;
- tail = sllNode;
- }
- }
- //列表是否为空
- public boolean isEmpty()
- {
- return (head == null);
- }
- //判断列表是否有下一个元素
- public boolean hasNext()
- {
- if(isEmpty())
- return false;
- if(cur.next == null)
- return false;
- return true;
- }
- //获得当前元素
- public SLLNode<T> getNextNode()
- {
- return cur.next;
- }
- //当前元素下移
- public void next()
- {
- cur = cur.next;
- }
- //为遍历准备
- public void prepare()
- {
- cur = new SLLNode<T>(null);
- cur.next = head;
- }
- public static void main(String []args)
- {
- SLLList<String> sllList = new SLLList<String>();
- sllList.addToHead("Joking");
- sllList.addToHead("Testing");
- sllList.addToTail("Lily");
- sllList.printAllNode();
- SLLList<String> sllList2 = new SLLList<String>();
- for(sllList.prepare(); sllList.hasNext(); sllList.next())
- {
- sllList2.addToHead(sllList.getNextNode().info);
- }
- sllList2.printAllNode();
- }
- }
发表评论
-
pushlet
2012-05-31 14:56 1168基于pushlet的文件监控系统的研究与实现 http ... -
@Transactional spring 配置事务
2012-04-25 11:15 2090@Transactional spring 配置事 ... -
Spring的组件自动扫描机制
2012-04-09 17:47 0Spring将所有的bean都纳入到IOC中创建、管理和维护。 ... -
struts&rest
2012-04-03 00:11 793深入浅出REST http://www.infoq. ... -
文件转码
2011-11-16 09:55 1991工程项目太多,各工程或各文件编码不统一时,可运行本工具类,把工 ... -
安装和使用SpringIDE-------III
2011-07-29 10:40 8372. 编写类文件 · ... -
安装和使用SpringIDE-------II
2011-07-29 10:39 681显示图表,如图: 发表于 @ 2006 ... -
安装和使用SpringIDE
2011-07-29 10:36 1127这篇文章谈谈如何安装与使用SpringIDE。作为辅助Sp ... -
使用AJDT简化AspectJ开发
2011-07-29 10:05 1019面向方面编程(AOP)可用来解决当今的 许多 应用需求 ... -
利用Apache的CLI来处理命令行
2011-05-16 17:02 977CLI是Jakarta Commons中的一个子类。如果你仅仅 ... -
CGlib简单介绍
2011-04-28 08:37 832CGlib概述:cglib(Code Generation L ... -
Java ClassLoader
2011-04-25 18:24 1001当Java编译器编译好.class ... -
Template模式与Strategy模式
2011-04-20 16:23 661template method模式和stra ... -
Ibatis读写CLOB数据
2011-03-21 14:21 1027转载:http://www.iteye.com/topic/7 ... -
轻松构建和运行多线程的单元测试
2011-03-18 22:09 973背景 并行程序 并行程序是指控制计算机系统中两个或多个分别 ... -
Cairngorm3中文简介
2011-03-18 22:07 1016官方原文地址:http://opensource.adobe. ... -
ibator改造之返回数据库注释和数据库分页
2010-12-23 17:24 2227转载:http://www.iteye.com ... -
quatrz 任务监控管理 (2)
2010-10-28 23:28 1440在《Quartz 任务监控管理 (1)》http://www. ... -
Quartz任务监控管理 (1)
2010-10-28 23:27 1284转载:http://sundoctor.iteye.com/b ... -
Quartz 在 Spring 中如何动态配置时间
2010-10-28 23:25 1682转载: http://sundoctor.iteye.com ...
相关推荐
数据结构中java版。。。对于单链表的倒置。。。
用JAVA写一个倒置单链表的源代码,适用于初学者,简单易懂
* JDK7用头插是考虑到了一个所谓的热点数据的点(新插入的数据可能会更早用到),但这其实是个伪命题,因为JDK7中rehash的时候,旧链表迁移新链表的时候,如果在新表的数组索引位置相同,则链表元素会倒置(就是因为...
在编程语言中,链式队列的实现通常涉及到指针或者引用的概念,例如在C++、C#、Java等面向对象的语言中,可以定义一个节点类(Node)和一个队列类(Queue)。队列类包含对头节点和尾节点的引用,以及相关的操作方法。...
10. **Java删除排序数组中的重复项**:可以使用双指针,一个指向当前未重复的元素,一个遍历数组,当两者相等时,跳过,否则交换它们的值。 11. **二叉树的最近公共祖先(LCA)**:通常使用深度优先搜索配合低阶位...
Java面试题是每个Java开发者在求职过程中必须面对的挑战,涵盖范围广泛,涉及到语言基础、数据结构、算法、多线程、JVM、框架、设计模式等多个方面。下面,我们将详细探讨这些领域的常见面试题及相关的知识点。 1. ...
9. **接口的使用**:虽然在这个特定的实验中没有直接使用接口,但在Java GUI编程中,事件监听器(如`KeyListener`)就是接口的典型应用,它们定义了需要实现的方法。 10. **基本组件的事件处理**:通过`numberField...
Java程序员面试是求职过程中的关键环节,它涵盖了各种技术知识点,包括但不限于基础语法、数据结构、算法、框架应用、设计模式、并发编程等。本宝典将围绕这些核心领域展开,帮助你充分准备面试,提升成功几率。 1....
2. 链表:分为单链表、双链表、环形链表,用于动态存储和操作元素。 3. 栈和队列:栈是后进先出(LIFO)结构,队列是先进先出(FIFO)结构。常用操作有push、pop、peek等。 4. 堆:可以是最大堆或最小堆,常用于...
- **封装、继承、多态**:理解这三大特性是Java的核心,学会如何设计和使用类及接口。 - **抽象类与接口**:掌握何时使用抽象类,何时选择接口,以及它们在多态中的作用。 - **异常处理**:理解异常的分类,学会...