`
BradyZhu
  • 浏览: 261255 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA的链表实现

 
阅读更多

其实很早就想开始在CSDN写博客了,但是苦于时间或者是懒,一直没有动手,想了想,最后还是开始吧,第一篇博客,开始我的CSDN之旅。

java动态链表奉上

package com.bird.node;

public class IntSLLNode {
	public int info;
	public IntSLLNode next;
	
	public IntSLLNode (int i){
		this(i,null);
	}
	
	public IntSLLNode(int i, IntSLLNode n){
		info = i;
		next = n;
	}
	
}


package com.bird.node;

public class IntSLLList {
	protected IntSLLNode head, tail;
	
	public IntSLLList(){
		head = tail = null;
	}
	
	public boolean isEmpty(){
		return null == head;
	}
	
	public void addToHead(int el){
		head = new IntSLLNode(el,head);
		if(tail == null){
			tail = head;
		}
	}
	
	public void addToTail(int el){
		if(!isEmpty()){
			tail.next = new IntSLLNode(el);
			tail = tail.next;
		}
		else{
			head = tail = new IntSLLNode(el);
		}
	}
	
	public int deleteFormHead(){
		int el = head.info;
		if(head == tail){
			head = tail = null;
		}else{
			head = head.next;
		}
		return el;
	}
	
	public int deleteFormTail(){
		int el = tail.info;
		if(head == tail){
			head = tail = null;
		}else{
			IntSLLNode tmp;
			for(tmp = head; tmp.next != tail; tmp = tmp.next);
			tail = tmp;
			tail.next = null;
		}
		return el;
	}
	
	public void printALL(){
		for(IntSLLNode tmp = head; tmp != null; tmp = tmp.next)
			System.out.println(tmp.info + "");
	}
	
	
	public boolean isIntList(int el){
		IntSLLNode tmp;
		for(tmp = head; tmp != null && tmp.info != el; tmp = tmp.next);
		return tmp != null;
	}
	
	
	public void delete(int el){
		if(!isEmpty()){
			if(head == tail && el == head.info){
				head = tail = null;
			}
			else if(el == head.info)
				head = head.next;
			else{
				IntSLLNode pred, tmp;
				for(pred = head, tmp = head.next; tmp != null && tmp.info != el; pred = pred.next, tmp = tmp.next);
				if(tmp != null){
					pred.next = tmp.next;
					if(tmp == tail){
						tail = pred;
					}
				}
			}
		}
	}
	
	
	public static void main(String [] args){
		IntSLLList list = new IntSLLList();
		System.out.println(list.isEmpty());
		list.addToHead(6);
		list.addToTail(14);
		list.printALL();
		list.deleteFormHead();
		list.isIntList(6);
		list.addToHead(15);
		list.printALL();
		list.delete(15);
		list.printALL();
	}
}


实现了最基本的功能,没有写注释,主要是希望自己好好看看,呵呵
分享到:
评论

相关推荐

    JAVA链表实现类(数据结构学习)

    JAVA链表实现类(数据结构学习).chm

    多项式相加 java链表实现

    总结来说,用Java链表实现多项式相加和相乘,主要步骤包括: 1. 创建`Node`类,表示多项式项。 2. 创建`LinkedList`类,表示多项式链表,并实现链表的基本操作。 3. 实现`insertA`方法,将一个多项式插入到另一个...

    java链表实现约瑟夫问题

    约瑟夫问题,通过类实现的链表,并加以改进,做成双向链表

    基于Java链表实现的字典树(trie)

    基于Java链表实现的字典树(trie),实现了增删改查等功能,它说摘要必须大于50字我还能说啥啥啥啥

    Java链表实现三例绝对经典.doc

    Java链表实现三例绝对经典,这主要涵盖了链表数据结构的基本操作,包括创建链表、遍历链表、添加节点以及删除节点。下面将详细解释这三个经典示例中的核心概念和技术。 首先,链表是一种线性数据结构,与数组不同,...

    java链表实现

    在Java编程语言中,链表是一种重要的数据...以上就是关于Java语言中单链表实现的知识点,涵盖了链表的基本概念、类结构、操作方法以及实际应用。理解这些概念有助于更好地设计和优化程序,特别是在处理动态数据集时。

    java链表实现丢手绢游戏

    下面将详细阐述如何用Java实现链表以及丢手绢游戏。 首先,我们需要创建一个`Player`类来表示游戏中的玩家。这个类至少包含两个属性:玩家的名字和指向下一个玩家的引用。例如: ```java public class Player { ...

    java链表实现的例子

    链表

    java入门程序(模拟图书馆管理)

    本项目“java入门程序(模拟图书馆管理)”是针对初学者设计的一个简单的学习资源,它通过使用链表这种数据结构来实现对图书馆书籍的管理功能,帮助初学者理解Java编程以及链表的基本概念。 链表是一种线性数据结构...

    java链表 个人总结

    Java链表是编程中一种基础且重要的数据结构,它在许多场景下有着广泛的应用。本文将结合个人学习心得,深入探讨Java链表的核心概念、实现方式以及与其他编程语言的互通性。 首先,链表是一种线性数据结构,与数组...

    java实现链表操作

    用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。

    多项式相加 java 链表

    总结来说,使用Java链表实现多项式相加是一种直观且有效的方法。通过链表的特性,我们可以方便地管理多项式的各项,并进行相应的计算。这个过程不仅锻炼了数据结构和算法的应用能力,也提高了代码的可读性和可维护性...

    用链表实现线性表java

    链表实现线性表的基本操作包括添加元素(插入)、删除元素、查找元素以及遍历等。在`ChainList.java`文件中,可能会定义一个名为`Node`的类来表示链表节点,如下所示: ```java class Node { int data; Node next...

    一元多项式相加 java实现

    总结起来,这个课程设计项目旨在让你理解和掌握链表数据结构的应用,以及如何利用链表实现一元多项式的表示和操作。通过解决这个问题,你不仅能提升编程技能,还能加深对基础数学和算法的理解。

    Java链表

    #### 二、Java链表实现机制 Java中链表的实现并不依赖于传统意义上的指针,而是通过对象引用。这是因为Java语言设计上不直接支持指针,但对象引用实质上扮演了指针的角色,使得链表在Java中依然可以轻松构建和管理...

    java版链表实现定时器功能

    在Java中,`java.util.Timer`类和`java.util.TimerTask`类提供了这样的功能,但它们是基于线程的,而非链表实现。然而,如果我们想用链表来实现定时器,我们可以模拟这个过程,创建一个节点代表每个待执行的任务,...

    java编写的循环链表来实现约瑟夫环

    循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释

    java链表的程序

    Java链表是一种基础且重要的数据结构,主要用于存储和管理动态数据集合。在Java中,有多种类型的链表,包括单链表、双链表和循环链表等。本程序可能是针对这些链表类型的一种实现,用于Java考试复习。在Java中,`...

    JAVA 链表实验源代码

    这里我们关注的是两个源代码文件——`ListNode.java`和`StringLinkedList.java`,它们是关于链表实现的Java源代码实验。 首先,`ListNode.java`通常会包含链表节点的定义。链表节点是链表的基本组成单元,它存储...

    Java用链表实现的计算器程序.rar_JAVA计算器链表_计算器链表

    这个"Java用链表实现的计算器程序"很可能是设计为一个解析表达式并进行计算的系统。链表在这里的角色可能是用来表示数学表达式的结构。例如,每个节点可能包含一个运算符(如加、减、乘、除)或者一个数字,通过这种...

Global site tag (gtag.js) - Google Analytics