欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

单向链表---Java版 Java

程序员文章站 2024-03-14 16:27:07
...

 

1. 节点类

 

package com.linkedlist;

public class SLLNode {

	public Object info;

	public SLLNode next;

	public SLLNode(Object e1) {
		info = e1;
		next = null;
	}

	public SLLNode(Object e1, SLLNode ptr) {
		info = e1;
		next = ptr;
	}

}
 

2. 链表类

 

package com.linkedlist;

public class SLList {

	protected SLLNode head = null;

	public SLList() {
		;
	}

	public boolean isEmpty() {
		return head == null;
	}

	public Object first() {
		return head.info;
	}

	public void printAll() {
		for (SLLNode tmp = head; tmp != null; tmp = tmp.next) {
			System.out.println(tmp.info);
		}
	}

	// 好好理解一下
	public void add(Object e1) {
		head = new SLLNode(e1, head);
		// info = e1;
		// next = ptr;
	}

	public Object find(Object e1) {
		SLLNode tmp = head;
		for (; tmp != null && !e1.equals(tmp.info); tmp = tmp.next) {
			;
		}
		if (tmp == null) {
			return null;
		} else {
			return tmp.info;
		}
	}

	public Object deleteHead() {
		Object e1 = head.info;
		head = head.next;
		return e1;
	}

	public void delect(Object e1) {
		if (head != null) {
			if (e1.equals(head.info)) {
				head = head.next;
			} else {
				SLLNode pred = head, tmp = head.next;
				for (; tmp != null && !(tmp.info.equals(e1)); pred = pred.next, tmp = tmp.next) {
					;
				}
				if (tmp != null) {
					pred.next = tmp.next;
				}
			} // end else
		}// end if
	}

}
 

3. 简单测试

 

package com.linkedlist;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		SLList list = new SLList();
		list.add("test1");
		list.add("test2");
		list.add(1);
		list.add(2);
		System.out.println(list.deleteHead());
		System.out.println(list.find(1));
		System.out.println(list.isEmpty());
		//list.delect("test2");
		System.out.println("------------------------");
		list.printAll();

	}

}

 

 

相关标签: Java