定义节点类
/**
* 链表的节点类
* @author se7en
*
*/
public class Node {
public int data;//元素的值
public Node Next;//链表指针,指向下一个元素
}
链表的实现类
/**
* 链表的实现类
* @author se7en
* 时间:2013年11月11日 23:37:56
*/
public class MyList {
private Node head = null;//链表的头指针
private int count = 0;//记录元素的个数
//添加方法,默认添加到最后
public void add(Node node){
add(node,count);
}
//添加到指定pos位置
public void add(Node node,int pos){
//如果添加未知错误
if(pos<0||pos>count){
System.out.println("添加未知错误!");
return;
}
//如果链表为空,直接将头指针指向node
if(count == 0){
head = node;
count++;
return;
}
//定义一个游标指针,并让其指向头节点
Node flag = head;
//循环找到要添加位置的上一个节点
for(int i=0;i<pos-1;i++){
flag = flag.Next;
}
//建立链接,添加元素
node.Next = flag.Next;
flag.Next = node;
count++;
}
//删除方法,默认在头删除
public Node remove(){
remove(0);
return null;
}
//删除指定位置pos的节点
public Node remove(int pos){
//如果删除未知错误
if(pos<0||pos>count-1){
System.out.println("删除位置错误!");
return null;
}
//如果链表为空
if(count == 0){
System.out.println("链表为空,删除错误!");
return null;
}
//定义一个游标指针flag,并让其指向头节点
Node flag = head;
//如果只有一个元素
if(count == 1){
head = null;
count = 0;
return flag;
}
//如果删除的是头节点,修改头指针
if(pos == 0){
head = head.Next;
flag.Next = null;
count--;
return flag;
}
//其他情况
//循环找到要删除未位置的前一个
for(int j=0;j<count-1;j++){
flag = flag.Next;
}
//定义一个临时指针temp,用来标记要删除的节点
Node temp = flag.Next;
//建立链接,删除节点
flag.Next = temp.Next;
temp.Next = null;
count--;
return temp;
}
//获取指定位置pos的元素
public Node get(int pos){
//定义一个游标指针,并让其指向头节点
Node flag = head;
//循环找到pos位置的节点
for(int k=0;k<pos;k++){
flag = flag.Next;
}
//复制一个要获取的节点,但next指向null
Node temp = new Node();
temp.data = flag.data;
temp.Next = null;
return temp;
}
//获取元素个数的方法
public int getSize(){
return count;
}
}
分享到:
相关推荐
哈希表--链表 哈希表--链表 哈希表--链表 哈希表--链表哈希表--链表 哈希表--链表哈希表--链表 哈希表--链表哈希表--链表 哈希表--链表哈希表--链表 哈希表--链表
java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf
Java 数据结构 链表 Java链表 数据结构链表
Java 实例 - 链表修改源代码-详细教程.zip
Java 实例 - 链表元素查找源代码-详细教程.zip
java数组和链表底层-链表的底层原理和实现 数组和链表.pdf
双链表-循环链表-静态链表.pdf
严蔚敏-数据结构--链表实现c++实现 还不错哦!``
学生信息管理系统---链表实现
链表构造
Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...
Java语言编写的数据结构-链表实现。包括顺序表和单链表、双链表
用java实现了数据结构中的链表,作为新手学习数据结构和java的资料。
Java 实例 - 获取链表的元素源代码-详细教程.zip
数据结构-链表 JAVA语言实现,包含单向链表、双向链表、循环链表的遍历、删除和插入 详细介绍:http://blog.csdn.net/z740852294/article/details/77369439
JAVA实现链表_双向链表
Java 实例 - 删除链表中的元素源代码-详细教程.zip
java代码-使用java面向对象的方法实现链表的源代码 ——学习参考资料:仅用于个人学习使用!