数据结构——单链表java简易实现
2024-08-28 10:01:51
巩固数据结构 单链表java实现 单链表除了表尾 每个几点都有一个后继 结点有数据和后继指针组成 通过构建表头和表尾(尾部追加需要)两个特殊几点 实现单链表的一些操作,代码如下
package com.shine.test.datastruct; /**
* 简易链表
*
* @author SHINE
*
* @param <E>
*/
public class LinkList<E> { private Node head, tail;
private int size = 0; protected class Node<E> {
E data;
Node next;
} public LinkList() {
head = new Node();
head.next = null;
tail = new Node<E>();
} public void insert(E e, int index) {
Node newNode = new Node<E>();
newNode.data = e; Node before = head;
Node temp = head.next;
while (index >= 0) {
if (index == 0) {
before.next = newNode;
newNode.next = temp;
size++;
break;
}
before = temp;
temp = temp.next;
index--;
}
} public void add(E e) {
Node node = new Node();
node.data = e;
node.next = null;
if (head.next == null) {
head.next = node;
}
tail.next = node;
tail = node;
size++;
} public E get(int index) {
if (index > size - 1) {
return null;
}
Node temp = head.next;
while (index >= 0) {
if (index == 0) {
return (E) temp.data; }
temp = temp.next;
index--;
}
return null;
} public E getFirst() {
return get(0);
} public E getLast() {
return get(size - 1);
} public void remove(E e) {
Node before = head;
Node temp = head.next;
while (temp != null) {
if (temp.data.equals(e)) {
before.next = temp.next;
size--;
break;
}
before = temp;
temp = temp.next;
}
} @Override
public String toString() {
StringBuffer sb = new StringBuffer();
Node temp = head.next;
while (temp != null) {
sb.append(temp.data + "->");
temp = temp.next;
}
return sb.toString();
} public int getLength() {
return size;
}
}
最新文章
- php程序员绝不能违背的安全铁则
- 在jsp页面解析json的2种方法
- 把谷歌等webkit内核浏览器变为输入文本编辑器的方法
- psy 2
- thinkphp5.0 架构
- 所有事件event集锦
- An overnight dance in discotheque
- 如何线上部署node.js项目
- CentOS下添加Root权限用户(超级用户)方法
- EmberJS 为什么我偏爱 Ember.js 胜过 Angular 和 React.js
- Eclipse ee项目 Java Resources文件报错解决方法
- 省市区三级联动——思路、demo、示例
- 第32章:MongoDB-索引--Capped固定集合
- Hadoop基础-MapReduce的Join操作
- 超人前传第一至十季/全集Smallville迅雷下载
- 使用FIO测试磁盘iops
- 【教程】【FLEX】#006 控件位置的拖动
- windows下thrift的使用(python)
- Socket编程(一):建立与客户端的连接并接受数据
- resnet densenet