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() {
}
}
}
分享到:
相关推荐
本压缩包"**C语言顺序表_单链表_双链表代码.zip**"提供了C语言实现的三种基本数据结构——顺序表、单链表和双链表的源代码,这些代码适用于初学者学习和实践。以下将详细介绍这三种数据结构及其应用。 **1. 顺序表*...
与双链表相比,单链表的插入和删除操作相对简单,但无法直接访问前一个节点。 3. **VC++**:VC++是Microsoft开发的一个集成开发环境(IDE),用于编写使用C++语言的应用程序。它包括编译器、调试器和其他工具,支持...
在链表头部插入新节点非常简单,只需更新头节点即可: ```cpp void insertAtHead(int value) { Node* newNode = new Node(); newNode->data = value; newNode->next = head; // head是链表的头指针 head = new...
例如,在C语言中,一个简单的单链表节点结构可以定义为: ```c typedef struct Node { int data; // 数据域 struct Node *next; // 指向下一个节点的指针 } Node; ``` ### 单链表的基本操作 单链表的基本操作...
通过上述分析,我们可以看到单链表的插入和删除操作虽然简单,但在具体实现过程中需要考虑多种情况和细节。对于初学者来说,理解这些基本操作及其背后的逻辑是非常重要的,这有助于更好地掌握链表这一重要的数据结构...
以下是一个简单的尾插法实现: ```c LinkList List_TailInsert(LinkList &L) { L = (LinkList)malloc(sizeof(LNode)); // 初始化头结点 LNode *s, *r = L; // r 为表尾指针 int x; scanf("%d", &x); // 输入...
完成日常支出简单管理,分别利用顺序表类和单链表类进行测试。功能:输入n项支出项目,并依次输出所有支出项目。 求出这n个支出项目中的最小、最大和平均消费。 按照日期找出某一天的所有花费。 按照日期和项目找出...
单链表是数据结构中最基础的一种,它由一系列节点组成,每个节点包含数据元素和一个指向下一个节点的指针。本教程将详细讲解如何使用C++实现单链表的建立、插入、删除以及查找操作。 首先,我们创建单链表的基础...
在这个数据结构课程设计中,学生被要求开发一个职工信息管理系统,使用C语言并基于单链表数据...通过这个系统,学生可以学习到如何使用C语言来实现一个简单的信息管理系统,这在实际软件开发中是非常基础且重要的技能。
以下是一个简单的归并排序实现步骤: 1. **分割**:找到链表中间节点,将其分为两半。 2. **排序**:对每个半部分递归调用归并排序。 3. **合并**:创建一个新的空链表,遍历两个已排序的子链表,每次选择较小的元素...
判断算法1和算法5生成单链表所表示的集合是否相等。 (10).在主函数中设计一个简单的菜单,分别调试上述算法。 【选作内容】 (11).利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。 (12).采用...
本文将深入探讨单链表的概念、特点、基本操作以及如何在实际编程中实现一个简单的单链表。 单链表由一系列节点组成,每个节点包含两部分:数据域(用于存储数据)和指针域(用于存储下一个节点的地址)。在单链表中...
线性表是数据结构的一种基本形式,而单链表是线性表的一种具体实现方式,尤其适合初学者入门学习。本文将深入探讨单链表的概念、特性、操作以及通过指针实现的细节。 单链表是一种动态数据结构,它由一系列节点组成...
单链表是非循环且只有一个指向下一节点的链接的数据结构。本次讨论的核心在于如何实现单链表的逆序,特别是采用非递归方法完成这一操作。 ### 单链表逆序的重要性 单链表逆序在实际应用中具有广泛的意义。例如,在...
当我们需要在单链表这种非数组结构上进行排序时,需要对基本的简单选择排序算法进行一些调整。接下来,我们将详细探讨如何在单链表上实现简单选择排序。 **一、单链表基础知识** 单链表是一种线性数据结构,由一...
用户交互界面可以使用简单的命令行输入输出实现,而数据库连接则可以借助SQL库(如SQLite)存储和检索房间信息。错误处理则需要对可能出现的异常情况进行捕获,确保程序的健壮性。 这个毕业设计项目不仅涵盖了C语言...
|____15.JavaDS_单链表.mp4 |____14.JavaDS_解析算术表达式.mp4 |____13.JavaDS_优先级队列.mp4 |____12.JavaDS_队列.mp4 |____11.JavaDS_栈应用实例.mp4 |____10.JavaDS_栈.mp4 |____09.JavaDS_对象的插入排序.mp4 ...
单链表是一种基础的数据结构,它在计算机科学中扮演着重要的角色,特别是在数据存储和算法实现方面。在本作业中,我们将重点讨论单链表的基本概念、操作以及如何通过编程实现这些操作。 单链表是一种线性数据结构,...
手动实现简单单链表实现,有助于学习数据结构之单链表。其中实现的功能有增删改查功能。单链表的优点是插入删除效率高。但不支持随机查找,查找效率低。
单链表的简单实现代码