package com.qianqiang;
public class LinkList<T> {
// 定义头节点
private Node<T> first;
//定义链表的大小
private int size;
public LinkList(T element)
{
this.first=new Node<T>(element);
size++;
} public LinkList()
{
}
//元素插入头部的位置
public void addFirst(T element)
{
addIndex(0,element);
}
//元素插入尾部的位置
public void addAfter(T element)
{
addIndex(size,element);
}
// 插入指定标号的位置
public int addIndex(int i,T element)
{ Node<T> p=first;
Node<T> q=null;
Node<T> temp=new Node<T>(element);
if(i<0||i>size)
return -1;
else
{ if(p==null)
{
first=temp;
size++;
return 0;
}
q=p.nextnode;
for(int j=1;j<i;j++)
{
p=q;
q=q.nextnode;
}
}
p.setNextNode(temp);
temp.setNextNode(q);
size++;
return i;
}
// 获取指定节点的元素
public T get(int i)
{ Node<T> p=first;
if(i>=0&&i<size)
{
throw new RuntimeException("数组越界或者数组为空!");
}
else
{
for(int j=0;j<i-1;j++)
p=p.getNextNode();
}
return p.getElement();
}
// 定义Node节点
public static class Node<T>
{
// 内部元素值
private T element;
private Node<T> nextnode;
// 构造函数
public Node(T t)
{
this.element=t;
}
public T getElement() {
return element;
}
public void setElement(T element) {
this.element = element;
}
public Node<T> getNextNode() {
return nextnode;
}
public void setNextNode(Node<T> node) {
this.nextnode = node;
}
}
public static void main(String[] args) {
LinkList<Integer> list=new LinkList<Integer>();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
System.out.println(3);
}
}
自己写的LinkList
最新推荐文章于 2022-04-19 16:10:13 发布