java版链表

public class List<T>{
	//java版本的链表,C++通过指针实现节点的连接(指针的实质还是引用,即地址)
	//所以,java中只需把->换做., 操作节点中下一个节点的地址即可
	private class Node{
		T data;
		Node next;
		
		public Node(){
			next=null;
		}
			
		public Node(T d){
			data=d;
			next=null;
		}
	}
	
	Node header;
	
	public List(){
		header=new Node();
		header.next=null;
	}
	
	T get(int i) {
		Node p=header;
		while(p.next!=null && i-->0)
			p=p.next;
		return p.data;
	}
	
	boolean insertLast(T e) {
		Node newNode=new Node(e);
		Node p=header;
		while(p.next!=null)
			p=p.next;
		p.next=newNode;
		return true;
	}
	
	boolean remove(int i) {
		Node p=header,del;
		if(i<1)
			return false;
		while(p.next!=null && --i>0) {
			p=p.next;
		}
		del=p.next;
		p.next=del.next;
		return true;
	}
	
	void print() {
		Node p=header;
		while(p.next!=null) {
			p=p.next;
			System.out.print(p.data+" ");
		}
		System.out.println();
	}
	
	public static void main(String[] args) {
		List<Student> list= new List<Student>();
		list.insertLast(new Student("xiaoming",01));
		list.insertLast(new Student("java",02));
		list.insertLast(new Student("java",03));
		list.insertLast(new Student("java",04));
		list.insertLast(new Student("xiaohong",05));
		list.print();	
		for(int i=1; i<=5; i++)
			if(list.get(i).name.equals("java"))
				list.remove(i);
		list.print();	
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值