public class List<E> { private Node<E> head;//定义链表头节点 private Node<E> last;//定义链表尾节点 private int len;//链表的长度 public void add(E obj)//为链表添加节点 { Node<E> linshi=new Node<E>();//创建一个临时节点 linshi.data=obj; if(head==null) //判断是头节点是否为空 { head=linshi; last=linshi; } last.next=linshi; last=linshi; len++; } public E move(int index) //移除链表节点 { if(index<len&&index>=0) //判断要删除的节点是否超范围 { Node<E> linshi1=new Node<E>(); Node<E> linshi2=new Node<E>(); linshi2=linshi1=head; if(index==0) //当要删除的头节点时,将head向下移 { head=head.next; len--; return linshi1.data; } for(int i=0;i<index;i++) //遍历链表找到要删除的节点 { linshi1=linshi2; linshi2=linshi2.next; } linshi1.next=linshi2.next; if(index==len-1) //当要删除的节点是尾节点时,尾节点向前移 { last=linshi1; } len--; return linshi2.data; } else { System.out.println("超出范围"); } return null; } public E get(int index) //得到第index个节点的数据 { if(index<len&&index>=0)//判断是否超范围 { Node<E> linshi=new Node<E>(); linshi=head; for(int i=0;i<index;i++)//遍历链表,找到节点 { linshi=linshi.next; } return linshi.data; } else { System.out.println("超出范围"); } return null; } public int size() //返回节点的长度 { return len; } public static void main(String[] args) { List<Integer> a=new List<Integer>();//创建一个放Integer数据的链表 for(int i=0;i<5;i++) a.add(i); //加入5个点节点 System.out.println("删除:"+a.move(3)); //删除下标为几的节点 a.add(9); //加入一个节点 for(int i=0;i<a.size();i++) //显示所有节点数据 System.out.println(a.get(i)); } }
此为主体代码,再要创建一个节点类,如下:
public class Node<E> //节点类 { public Node<E> next; public E data; }
和我学的C语言一样,链表是个很好的工具,方便了程序的许多功能,链表一学通,就会觉得很简单,既然会添加节点,那就会插入和删除节点,也可以把所有的节点数据都输出,一样通,样样通,链表的灵活就在于他的节点里的next,可以通过next很轻松的找到其它的节点,当创建数组时,范围是确定的,不能灵活的运用,而链表不同,他可以不确定范围,随时用随时创建,很方便。
java里面给我们封装了LinkedList 链表队列 ,只需要创建对象,再调用里面的函数就可以了。
相关推荐
C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表
04.单向链表以及单向链表的应用.ppt
C#单向链表的实现的源码
c++实现单向链表逆转,c++实现单向链表逆转,c++实现单向链表逆转,c++实现单向链表逆转,c++实现单向链表逆转,
单向链表架构代码,适合学习链表的学生学习!内附排序函数,打印函数,链表尾添项函数,删除函数。
1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。 2.遍历单向链表。 3.把单向链表中元素逆置(不允许申请新的结点空间)。 4.在单向链表中删除所有的偶数元素结点。 5.编写在非递减...
这是一个单向链表,它具有插入与删除节点的功能。Entry类实现了链表的各节点。
Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现单向链表Java SE程序 类实现...
将一个单向链表反向连接
本文件描述单向链表类模板。移植时,仅需要本文件
培训班老师自己写的单向链表,代码非常全,也很好理解,可执行。
单向链表类定义及测试文件 对应于数据机构与算法分析(c++版)第三版或第二版 作者Clifford A.Shaffer 重庆大学使用教材
数据结构,c语言实现的单向链表。代码分享 struct LinkNode { int data; struct LinkNode *next; }; typedef struct LinkNode *Lnode;
C++进阶学习——单向链表的实现,相关教程链接如下: http://blog.csdn.net/tennysonsky/article/details/49685199
java语言模拟单向链表,JAVA数据结构
C 语言版 单向链表 #include #include typedef struct student { int num; struct student *next; }st; st *creat() //创建链表 { st *head , *tail , *p; int num = 0; head = tail = p = NULL; printf...
slist.h为单向链表,blist为双向链表
很好的一个说明了单向链表的操作方法 创建
数据结构实验报告,使用vC++ 6.0工具来进行调试单向链表。
使用单向链表对字符串进行排序,并以从小到大的顺序显示出来。