`
helloworldfengyun
  • 浏览: 14013 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Java语言实现一个链表

阅读更多
package test;

public class LinkList {
	private static class Node{
		int data;
		Node next;
		Node(int data){
			this.data = data;
			this.next = null;
		}
	}
	Node head;//头结点
	public LinkList(){//链表的构造方法
		head = null;
	}
	
	public void clear(){//清空链表
		head = null;
	}
	
	public void travel(){//遍历打印链表
		Node p = head;
		while(p != null){
			System.out.println(p.data);
			p = p.next;
		}
	}
	
	public boolean isEmpty(){//判断链表是否为空
		return head == null;
	}
	
	public int size(){//得到节点的个数
		Node p = head;
		int sum = 0;
		while(p != null){
			sum++;
			p = p.next;
		}
		return sum;
	}
	
	public void insert(int value, int pos){//指定位置插入节点
		if(pos < 0 || pos > size()){
			throw new RuntimeException("下标异常");
		}
		Node newNode = new Node(value);
		if(pos == 0){
			newNode.next = head;
			head = newNode;
		}else if(pos >= (size()-1)){
			get(size()-1).next = newNode;
		}else{
			newNode.next = get(pos);
			get(pos-1).next = newNode;
		}
	}
	
	public Node get(int pos){//获取指定位置的节点
		if(pos < 0 || pos >= size()){
			throw new RuntimeException("下标出错");
		}
		if(pos == 0){
			return head;
		}
		Node p = head;
		for(int i=0;i<pos;i++){
			p = p.next;
		}
		return p;
	}
	
	public void remove(int pos){//删除指定位置的元素
		if(pos < 0 || pos >= size()){
			throw new RuntimeException("下标出错");
		}
		if(pos == 0){
			head = head.next;
		}else if(pos >= (size()-1)){
			Node temp = get(size()-1);
			temp = null;
			get(size()-2).next = null;
		}else{
			get(pos-1).next = get(pos).next;
			Node posNode = get(pos);
			posNode = null;
		}
		
	}
	
	public static void main(String args[]){
		LinkList ll = new LinkList();
		ll.insert(1, 0);
		ll.insert(2, 1);
		ll.travel();
	}
}

 

分享到:
评论

相关推荐

    Java算法(链表操作实例)

    例如,要在链表头部插入一个节点,可以这样实现: ```java public void insertAtHead(int val) { ListNode newNode = new ListNode(val); newNode.next = head; head = newNode; } ``` 这里的`head`是链表的头...

    数据结构-链表 JAVA语言实现

    数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439

    java 实现倒序链表

    接下来,我们需要编写一个方法来实现链表的倒序。该方法接收链表的头结点作为参数,并返回倒序后的新的头结点。实现的逻辑大致分为以下几个步骤: 1. 初始化三个指针:`p`、`q`和`head`。 2. 使用循环逐个反转节点的...

    java实现的动态链表

    在Java中,除了手动实现链表外,还可以使用内置的`LinkedList`类,它是Java集合框架的一部分,提供了丰富的操作方法。然而,手动实现链表可以帮助我们更好地理解数据结构和算法,这对于软件开发人员来说是非常有价值...

    Java实现的循环链表源码

    由于在项目中需要用到循环链表,然而在JDK没有其实现,所以用Java语言实现了循环链表,供大家学习和参考。若有任何问题请发送E-Mail:wn_lut@126.com,以交流及改进。 Package:com.utilities.structs 打开方式:...

    链表-使用JAVA语言实现链表数据结构.zip

    链表 链表_使用JAVA语言实现链表数据结构

    用链表实现线性表java

    在Java编程语言中,线性表是一种常见的数据结构,它包含了一组有序的元素集合。...通过`ChainList.java`和`ListInterface.java`,我们可以学习如何在Java中构建一个功能完备的链表结构,并了解其在实际应用中的价值。

    Java语言编写的数据结构-链表实现

    本文将详细探讨如何使用Java语言来实现链表,包括顺序表和单链表、双链表。 首先,我们来看顺序表。顺序表是一种线性数据结构,其中元素在内存中按顺序存储。在Java中,我们可以使用数组来实现顺序表。当插入或删除...

    基于Java实现数据结构链表相关程序.pdf

    Java语言作为一种广泛使用的编程语言,在实现数据结构,尤其是链表方面,展现出了其独特的...随着软件开发领域的不断发展,对Java语言实现数据结构链表的研究和探讨也将不断深入,以适应更加复杂和多变的软件开发需求。

    链表用java实现,弥补java的无指针的缺点

    虽然Java没有像C或C++那样的指针,但是通过对象引用,我们完全可以在Java中实现链表数据结构。这种实现方式不仅安全,而且易于理解和操作。通过链表,我们可以高效地处理动态数据集,执行插入、删除等操作,而无需...

    java链表 个人总结

    虽然不同语言实现链表的具体语法和API可能有所差异,但链表的基本概念和操作原理是相通的。例如,在C++中,我们可以使用指针来创建链表;在Python中,有内置的list类型,但也可以自定义链表结构。理解了Java的链表,...

    java链表实现

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

    java 动态的数组链表

    在实现动态数组链表时,例如`MyLinkedList.java`可能包含自定义的链表节点类(Node),包含数据和指向下一个节点的引用,以及链表类本身,提供类似ArrayList的操作。`Java.jpg`可能是用于辅助理解链表概念的可视化图...

    单链表双向链表java实现

    在Java中实现链表,我们可以使用类来表示节点,并包含一个数据字段和一个或两个指针字段,具体取决于我们是创建单链表还是双向链表。通常,我们还会定义一个链表类,它包含对链表操作的方法,如添加、删除、查找和...

    学生成绩管理用C语言链表实现

    本文将详细介绍一个使用C语言和链表实现的学生成绩管理系统,该系统包括查询模块、更新模块、输入输出模块、统计模块、文件读写模块和主程序。 链表数据结构 在该系统中,我们使用链表来存储学生成绩信息。链表是...

    2022年Java语言中链表和双向链表Java教程.docx

    虽然Java不直接提供指针,但通过对象引用,我们可以轻松地实现链表的构建。在Java中,链表主要由节点(Node)组成,每个节点包含数据域和指向下一个节点的引用。 在Java中,我们可以创建一个Node类来表示链表中的...

    java 版本循环链表

    在提供的文件信息中,虽然标题和描述部分未给出具体内容,但是“java 版本循环链表”的标题和部分描述内容暗示了文章内容应该是与Java编程语言实现的循环链表数据结构相关。循环链表是一种常见的数据结构,在计算机...

    JAVA 链表实验源代码

    在Java编程语言中,链表是一种非常基础且重要的数据结构,它被广泛应用于各种算法和程序设计中。这里我们关注的是两个源代码文件——`ListNode.java`和`StringLinkedList.java`,它们是关于链表实现的Java源代码实验...

    java模拟实现数组链表树图等数据结构

    Java作为一种广泛使用的编程语言,提供了多种内置的数据结构,如数组、链表、树和图。本项目“java模拟实现数组链表树图等数据结构”旨在帮助初学者通过实际操作来理解这些基本数据结构及其工作原理。 首先,数组是...

Global site tag (gtag.js) - Google Analytics