- 浏览: 222639 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 1180基于pushlet的文件监控系统的研究与实现 http ... -
@Transactional spring 配置事务
2012-04-25 11:15 2104@Transactional spring 配置事 ... -
Spring的组件自动扫描机制
2012-04-09 17:47 0Spring将所有的bean都纳入到IOC中创建、管理和维护。 ... -
struts&rest
2012-04-03 00:11 801深入浅出REST http://www.infoq. ... -
文件转码
2011-11-16 09:55 2035工程项目太多,各工程或各文件编码不统一时,可运行本工具类,把工 ... -
安装和使用SpringIDE-------III
2011-07-29 10:40 8722. 编写类文件 · ... -
安装和使用SpringIDE-------II
2011-07-29 10:39 690显示图表,如图: 发表于 @ 2006 ... -
安装和使用SpringIDE
2011-07-29 10:36 1138这篇文章谈谈如何安装与使用SpringIDE。作为辅助Sp ... -
使用AJDT简化AspectJ开发
2011-07-29 10:05 1068面向方面编程(AOP)可用来解决当今的 许多 应用需求 ... -
利用Apache的CLI来处理命令行
2011-05-16 17:02 992CLI是Jakarta Commons中的一个子类。如果你仅仅 ... -
CGlib简单介绍
2011-04-28 08:37 886CGlib概述:cglib(Code Generation L ... -
Java ClassLoader
2011-04-25 18:24 1021当Java编译器编译好.class ... -
Template模式与Strategy模式
2011-04-20 16:23 698template method模式和stra ... -
Ibatis读写CLOB数据
2011-03-21 14:21 1063转载:http://www.iteye.com/topic/7 ... -
轻松构建和运行多线程的单元测试
2011-03-18 22:09 1011背景 并行程序 并行程序是指控制计算机系统中两个或多个分别 ... -
Cairngorm3中文简介
2011-03-18 22:07 1036官方原文地址:http://opensource.adobe. ... -
ibator改造之返回数据库注释和数据库分页
2010-12-23 17:24 2267转载:http://www.iteye.com ... -
quatrz 任务监控管理 (2)
2010-10-28 23:28 1451在《Quartz 任务监控管理 (1)》http://www. ... -
Quartz任务监控管理 (1)
2010-10-28 23:27 1331转载:http://sundoctor.iteye.com/b ... -
Quartz 在 Spring 中如何动态配置时间
2010-10-28 23:25 1724转载: http://sundoctor.iteye.com ...
相关推荐
数据结构中java版。。。对于单链表的倒置。。。
### 不改变链表储存空间实现单链表的倒置 #### 概述 在计算机科学领域,链表是一种常见的线性数据结构,其中元素不是在内存中连续存储的,而是通过节点之间的指针链接在一起。单链表是最简单的一种链表形式,每个...
用JAVA写一个倒置单链表的源代码,适用于初学者,简单易懂
3. **出栈操作**:`pop`函数实现了从栈中移除顶部元素的操作。 4. **主函数**: - 首先初始化栈。 - 读取输入的学生信息并压入栈中。 - 按照出栈顺序输出学生信息,实现了单链表逆置的效果。 #### 五、总结 本...
在数据结构的学习中,单链表是一种基础且重要的数据结构,它由一系列节点组成,每个节点包含数据元素和指向下一个节点的指针。本题目要求实现一个不带头节点的单链表倒置的算法,这是一个典型的链表操作问题,旨在...
单链表操作,希望能够帮助正在学习数据结构的同学
由于栈中元素的出栈顺序与入栈顺序相反,因此可以达到链表倒置的效果。 #### 2. 算法实现细节 在算法实现上,我们定义了三个关键函数:`LsInitiate()`用于初始化栈,`LSPush()`用于将元素压入栈,`LSPop()`用于从...
单链表倒置.c
本教程将详细介绍如何在Java中实现二维数组的倒置。 1. **二维数组的基本概念** 二维数组是由一维数组组成的数组,可以看作是多个一维数组的集合。每个一维数组称为二维数组的一行或一列。声明二维数组时,通常...
《数据结构与算法》(张宪超)给定一个不带头结点的单链表,写出将单链表倒置的算法
JAVA源码Java数组倒置JAVA源码Java数组倒置
单链表的操作 包括创建 删除 排序 求长度 倒置
实现链表的倒置:以倒插的方法的(既每次都插入到头结点的后面)来实现链表的倒置
在Java中,数组是一种数据结构,用于存储同一类型的多个元素。数组倒置,也就是将数组中的元素顺序从后往前排列,使得原数组的第一个元素变为最后一个,最后一个元素变为第一个。这个过程可以用于各种应用场景,比如...
本项目聚焦于利用C#实现一个带有图形用户界面(GUI)的单链表操作系统,允许用户直观地进行生成、增删改、倒置和清空等操作。 首先,我们来详细解释单链表。单链表是一种线性数据结构,其中每个元素(称为节点)...
单链表是一种线性数据结构,每个元素称为节点,每个节点包含两个部分:数据域,存储实际信息;指针域,存储指向下一个节点的地址。链表的第一个节点称为头节点,最后一个节点的指针域为NULL,表示链表的结束。 1. *...
循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 代码: class ListNode: def __init__(self,x): self.val=x; self.next=None; def nonrecurse(head): #循环的方法反转...
单链表逆序(简明,易懂) 单链表逆序(简明,易懂) 单链表逆序(简明,易懂)
在Java中,我们可以使用两个指针,一个从数组的开始位置,另一个从数组的末尾位置,然后交换这两个指针指向的元素,直到它们相遇在中间。这种方法的时间复杂度为O(n),其中n是数组的长度。以下是一个简单的示例: `...