package sunfa;
import java.util.Iterator;
/**
* 单链表
*
* @author Administrator
*
*/
public class SingleLinkedList {
public static void main(String[] args) {
SingleLinkedList link = new SingleLinkedList();
for (int i = 10; i < 20; i++) {
link.add(i);
}
System.out.println("list:");
Iterator it = link.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("getFirst:" + link.getFirst());
System.out.println("getLast:" + link.getLast());
link.remove(13);
link.remove(17);
System.out.println("删除后");
it = link.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
private Node head = new Node(null, null);
private Node tail = null;
public SingleLinkedList() {
head.next = tail;
}
public Object getFirst() {
if (head.next != null)
return head.next.element;
return null;
}
public Object getLast() {
if (tail == null) {
return null;
}
return tail.getElement();
}
public void add(Object o) {
Node node = new Node(o, null);
if (tail == null)
head.next = node;
else
tail.next = node;
tail = node;
}
public Object remove(Object o) {
for (Node e = head.next; e != head;) {
Node current = e;
e = e.next;
if (e.element == o) {
current.next = e.next;
return e.element;
}
}
return null;
}
// public Object find(int index){
// if(tail==null){
// return null;
// }
// while(index!=head.next.o){
//
// }
// }
public Iterator iterator() {
return new Itr(head);
}
private static class Node {
Object element;
Node next;
public Node(Object o, Node next) {
super();
this.element = o;
this.next = next;
}
public Object getElement() {
return element;
}
}
private class Itr implements Iterator {
private Node cur;
public Itr(Node cur) {
super();
this.cur = cur;
}
public boolean hasNext() {
return cur.next != null;
}
public Object next() {
Object o = cur.next.element;
cur = cur.next;
return o;
}
public void remove() {
}
}
}
分享到:
相关推荐
一个简单的单链表,具有插入删除打印等功能
单链表简单基数排序,关键字有三个,参与排序的关键字的值为0-9之间的数
简单介绍单链表的基本操作实现查找PDF文件
完成日常支出简单管理,分别利用顺序表类和单链表类进行测试。功能:输入n项支出项目,并依次输出所有支出项目。 求出这n个支出项目中的最小、最大和平均消费。 按照日期找出某一天的所有花费。 按照日期和项目找出...
判断算法1和算法5生成单链表所表示的集合是否相等。 (10).在主函数中设计一个简单的菜单,分别调试上述算法。 【选作内容】 (11).利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。 (12).采用...
实现简单的单链表,数据结构中的单链表功能的实现
|____15.JavaDS_单链表.mp4 |____14.JavaDS_解析算术表达式.mp4 |____13.JavaDS_优先级队列.mp4 |____12.JavaDS_队列.mp4 |____11.JavaDS_栈应用实例.mp4 |____10.JavaDS_栈.mp4 |____09.JavaDS_对象的插入排序.mp4 ...
适用于初学者 非常简单! 电子版下载通过指针实现单链表结点的传递
手动实现简单单链表实现,有助于学习数据结构之单链表。其中实现的功能有增删改查功能。单链表的优点是插入删除效率高。但不支持随机查找,查找效率低。
单链表逆序 用了两个指针变量。 非递归实现。
单链表的简单实现代码
单链表的实现-简单操作
以单链表为存储结构实现简单选择排序的算法
只是老师布置的作业 单链表,就是输入一组数据 进行简单的插入删除 查找操作
简易单链表增删改查功能实现。新增内容:新增单链表LruCache算法增删改查,对学习LruCache 算法有一定帮助。
集合单链表常用函数以便管理数据,从而简单高效地实现数据的增添更新等操作。
在已建好的单链表L中第一次出现内容为a的结点前面插入一个内容为b的结点。若内容为a的结点不存在,则把元素b插入到单链表的最后。 打印输入字符,打印插入元素b后单链表中的每个字符。
4.熟练掌握简单的演示菜单与人机交互设计方法。 二、实验内容 1. 编制一个演示单链表插入、删除、查找等操作的程序。 三、实验步骤 1.需求分析 本演示程序用JAVA编写,完成单链表的生成,任意位置的插入、删除,...
单链表 单链表的插入删除 遍历等操作
简单的单表操作,是单链表的插入操作,简单明了,易懂