只实现了add()和get()方法,采用tail指针,使得添加节点非常简单。
public class SingleLinkedList<T> {
int size = 0;
Node<T> head, tail;
public SingleLinkedList() {
head = tail = null;
}
public void add(T data) {
if (size == 0) {
head = tail = new Node<T>(data, null);
} else {
tail.next = new Node<T>(data, null);
tail = tail.next;
}
size++;
}
public Node<T> get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index:" + index + ",size:" + size);
}
Node<T> node = head;
for (int i = 0; i < index; i++) { //当index=0时,i不小于index(零不小于零),于是直接return头结点,head不是哑元
node = node.next; //对头结点进行迭代
}
return node;
}
public int size(){
return size;
}
public static void main(String[] args){
SingleLinkedList<Integer> list=new SingleLinkedList<Integer>();
list.add(1);
list.add(2);
list.add(3);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getData());
}
}
class Node<T> {
T data;
Node<T> next;
public Node(T data, Node<T> next) {
this.data = data;
this.next = next;
}
public T getData(){
return data;
}
public void setData(T data){
this.data=data;
}
}
}
分享到:
相关推荐
简易单链表增删改查功能实现。新增内容:新增单链表LruCache算法增删改查,对学习LruCache 算法有一定帮助。
手动实现简单单链表实现,有助于学习数据结构之单链表。其中实现的功能有增删改查功能。单链表的优点是插入删除效率高。但不支持随机查找,查找效率低。
在已建好的单链表L中第一次出现内容为a的结点前面插入一个内容为b的结点。若内容为a的结点不存在,则把元素b插入到单链表的最后。 打印输入字符,打印插入元素b后单链表中的每个字符。
单链表是计算机科学中一种基础且重要的数据结构,它在很多编程问题和算法实现中都有广泛应用。在本文中,我们将深入探讨单链表的概念、结构、操作以及它在实际编程中的应用。 单链表是一种线性数据结构,每个元素...
C语言:数组创建单链表;键盘输入数值创建单链表。 int main() { pNode tmp=(pNode)malloc(sizeof(struct Node) ); tmp=creatList(); tmp=inputCreatList(); return 0; }
本文将深入探讨单链表的概念、特点、基本操作以及如何在实际编程中实现一个简单的单链表。 单链表由一系列节点组成,每个节点包含两部分:数据域(用于存储数据)和指针域(用于存储下一个节点的地址)。在单链表中...
简单的单向链表(数据结构初学者)(cpp)文件中头文件和源文件都在一个文件中.请下载后的同学仔细看好。
1.单链表创建 2.头插法 3.尾插法 4.删除 5.遍历
单链表的简单实现代码
当我们需要在单链表这种非数组结构上进行排序时,需要对基本的简单选择排序算法进行一些调整。接下来,我们将详细探讨如何在单链表上实现简单选择排序。 **一、单链表基础知识** 单链表是一种线性数据结构,由一...
判断链表是否为空很简单,只需要检查头节点是否为nullptr: ```cpp bool isEmpty(ListNode* head) { return head == nullptr; } ``` 计算单链表的长度,可以初始化一个计数器,遍历链表时每次增加计数器: ```...
单链表是非循环且只有一个指向下一节点的链接的数据结构。本次讨论的核心在于如何实现单链表的逆序,特别是采用非递归方法完成这一操作。 ### 单链表逆序的重要性 单链表逆序在实际应用中具有广泛的意义。例如,在...
单链表的实现-简单操作
线性表是数据结构的一种基本形式,而单链表是线性表的一种具体实现方式,尤其适合初学者入门学习。本文将深入探讨单链表的概念、特性、操作以及通过指针实现的细节。 单链表是一种动态数据结构,它由一系列节点组成...
单链表是一种基础的数据结构,它在计算机科学中扮演着重要的角色,特别是在数据存储和算法实现方面。在本作业中,我们将重点讨论单链表的基本概念、操作以及如何通过编程实现这些操作。 单链表是一种线性数据结构,...
### 数据结构之单链表实例解析 在计算机科学领域中,数据结构是研究如何组织、...单链表作为一种简单且高效的数据结构,在处理动态数据集合时具有很大的灵活性。理解其工作原理对于学习更复杂的数据结构非常有帮助。
在`main`函数中,我们创建了两个节点`node1`和`node2`,并构建了一个简单的链表,然后调用`Reverse`函数进行反转,并打印反转后的链表头的`nData`值,验证反转操作是否成功。 总结来说,这段C++代码演示了如何通过...
单链表是一种简单但灵活的数据结构,常用于实现各种抽象数据类型,如队列、栈和映射。本教程将深入探讨如何使用Java语言来实现单链表及其相关操作。 首先,我们来理解单链表的基本概念。单链表由一系列节点组成,每...
总结来说,单链表是一种简单但功能强大的数据结构,对于理解和掌握更复杂的算法和数据结构,如二叉树、图等,都起着至关重要的作用。学习和熟练掌握单链表的操作是任何IT专业人员的必修课。在实际应用中,根据具体...