其实很早就想开始在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链表实现类(数据结构学习).chm
总结来说,用Java链表实现多项式相加和相乘,主要步骤包括: 1. 创建`Node`类,表示多项式项。 2. 创建`LinkedList`类,表示多项式链表,并实现链表的基本操作。 3. 实现`insertA`方法,将一个多项式插入到另一个...
约瑟夫问题,通过类实现的链表,并加以改进,做成双向链表
基于Java链表实现的字典树(trie),实现了增删改查等功能,它说摘要必须大于50字我还能说啥啥啥啥
Java链表实现三例绝对经典,这主要涵盖了链表数据结构的基本操作,包括创建链表、遍历链表、添加节点以及删除节点。下面将详细解释这三个经典示例中的核心概念和技术。 首先,链表是一种线性数据结构,与数组不同,...
在Java编程语言中,链表是一种重要的数据...以上就是关于Java语言中单链表实现的知识点,涵盖了链表的基本概念、类结构、操作方法以及实际应用。理解这些概念有助于更好地设计和优化程序,特别是在处理动态数据集时。
下面将详细阐述如何用Java实现链表以及丢手绢游戏。 首先,我们需要创建一个`Player`类来表示游戏中的玩家。这个类至少包含两个属性:玩家的名字和指向下一个玩家的引用。例如: ```java public class Player { ...
链表
本项目“java入门程序(模拟图书馆管理)”是针对初学者设计的一个简单的学习资源,它通过使用链表这种数据结构来实现对图书馆书籍的管理功能,帮助初学者理解Java编程以及链表的基本概念。 链表是一种线性数据结构...
Java链表是编程中一种基础且重要的数据结构,它在许多场景下有着广泛的应用。本文将结合个人学习心得,深入探讨Java链表的核心概念、实现方式以及与其他编程语言的互通性。 首先,链表是一种线性数据结构,与数组...
用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。
总结来说,使用Java链表实现多项式相加是一种直观且有效的方法。通过链表的特性,我们可以方便地管理多项式的各项,并进行相应的计算。这个过程不仅锻炼了数据结构和算法的应用能力,也提高了代码的可读性和可维护性...
链表实现线性表的基本操作包括添加元素(插入)、删除元素、查找元素以及遍历等。在`ChainList.java`文件中,可能会定义一个名为`Node`的类来表示链表节点,如下所示: ```java class Node { int data; Node next...
总结起来,这个课程设计项目旨在让你理解和掌握链表数据结构的应用,以及如何利用链表实现一元多项式的表示和操作。通过解决这个问题,你不仅能提升编程技能,还能加深对基础数学和算法的理解。
#### 二、Java链表实现机制 Java中链表的实现并不依赖于传统意义上的指针,而是通过对象引用。这是因为Java语言设计上不直接支持指针,但对象引用实质上扮演了指针的角色,使得链表在Java中依然可以轻松构建和管理...
在Java中,`java.util.Timer`类和`java.util.TimerTask`类提供了这样的功能,但它们是基于线程的,而非链表实现。然而,如果我们想用链表来实现定时器,我们可以模拟这个过程,创建一个节点代表每个待执行的任务,...
循环链表 实现约瑟夫环 java 自己写的 测试通过 有注释
Java链表是一种基础且重要的数据结构,主要用于存储和管理动态数据集合。在Java中,有多种类型的链表,包括单链表、双链表和循环链表等。本程序可能是针对这些链表类型的一种实现,用于Java考试复习。在Java中,`...
这里我们关注的是两个源代码文件——`ListNode.java`和`StringLinkedList.java`,它们是关于链表实现的Java源代码实验。 首先,`ListNode.java`通常会包含链表节点的定义。链表节点是链表的基本组成单元,它存储...
这个"Java用链表实现的计算器程序"很可能是设计为一个解析表达式并进行计算的系统。链表在这里的角色可能是用来表示数学表达式的结构。例如,每个节点可能包含一个运算符(如加、减、乘、除)或者一个数字,通过这种...