因为数据结构有一点难度,有些lazy的同学不愿意去深究,学完了代码都没打几个,没错说的就是你肖兆菲同学,以下我将我打的电脑代码复制粘贴过来
首先先看链表
关于单链表:
1、概念
在单链表中由于数据元素的存储空间一般不是连续的,因此为了完善的表示单链表的逻辑结构,其中每一个数据元素必须由两部分构成:一部分是数据元素中的数据值,另一部分是数据元素的地址值。这两部分信息构成了单链表的一个节点。因此,在用单链表表示线性表时,每个结点的存储地址是任意的,即存储位置是无序的。
2、结构
对于单链表来说,每个节点的结构都是(data,next),节点中有两个部分:data域—存放结点值的数据域,next—存放结点的直接后续的地址的链域。
1.0
编写一个Node类来充当结点的模型。我们知道,其中有两个属性,1存放数据的data,2存放下一结点的引用,
public class Node<T> { //单链表结点类,T指定结点的元素类型
//1. 定义成员变量
public T data; //数据域,存储数据元素
public Node<T> next; //地址域,引用后继结点
//2. 定义构造方法
public Node(T data, Node<T> next) { //构造结点,data指定数据元素,next指定后继结点
this.data = data; //T对象引用赋值
this.next = next; //Node<T>对象引用赋值
}
public Node() {
this(null, null);
}
public String toString() { //返回结点数据域的描述字符串
return this.data.toString();
}
}
2.2、单链表的简单操作(增加,删除,获取总长度,链表元素排序,链表遍历)
我们依次来实现以下方法
1 判断是否为空
2 获取设置某元素
3 获取大小
4 插入某元素
5 移除某元素
6 清除该链表
7查询某元素
8 包含某元素
9 插入不同元素
Node.java
public Node{
public Node<T> head; //头指针,指向单链表的头结点
public SinglyList() { //构造方法,构造空单链表
this.head = new Node<T>(); //创建头结点,data和next值均为null
}
public SinglyList(T[] values) {
this();