博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现双向链表
阅读量:6992 次
发布时间:2019-06-27

本文共 1992 字,大约阅读时间需要 6 分钟。

PS:双向链表(每个节点含有指向前一个节点的前驱与后一个节点的后继)public class DoublyLinkedList {	static class Node {		private Object data;		private Node prev;		public Node getPrev() {			return prev;		}		public void setPrev(Node prev) {			this.prev = prev;		}		private Node next;		public Node(Object value) {			this.data = value;		}		public Object getData() {			return data;		}		public void setData(Object data) {			this.data = data;		}		public Node getNext() {			return next;		}		public void setNext(Node next) {			this.next = next;		}		@Override		public String toString() {			return String.valueOf(data);		}	}	private Node head;// 头节点	public DoublyLinkedList() {		head = new Node(null);	}	// 双向链表表头插入节点	public void addFirst(Object value) {		Node node = new Node(value);		if (head.next == null) {			head.next = node;			node.prev = head;		} else {			node.prev = head;			node.next = head.next;			head.next.prev = node;			head.next = node;		}		// head=node;	}	// 删除表头	public void removeFirst() {		Node node = head.next;		if (node.next != null) {			node.next.prev = head;			head.next = node.next;		}	}	// 顺序打印链表	public void printList() {		Node node = head.next;		while (node != null) {			System.out.print(node.data + " ");			node = node.next;		}		System.out.println();	}	// 逆序打印链表	public void reversePrintList() {		Node node = head.next;		Node tail = null;		while (node.next != null) {			node = node.next;		}		tail = node;		// System.out.println(tail.data);		while (tail.prev != null) {			System.out.print(tail.data + " ");			tail = tail.prev;		}		System.out.println();	}	public static void main(String[] args) {		DoublyLinkedList linkedList = new DoublyLinkedList();		for (int i = 0; i < 10; i++) {			linkedList.addFirst(i);		}		System.out.println("顺序打印链表");		linkedList.printList();		System.out.println("逆序打印链表");		linkedList.reversePrintList();		System.out.println("依次删除头结点");		for (int i = 0; i < 10; i++) {			linkedList.removeFirst();			linkedList.printList();		}	}}

  

转载于:https://www.cnblogs.com/cugb-2013/p/3675442.html

你可能感兴趣的文章
视频营销,带来SKYCC组合营销软件火爆热销?
查看>>
SuperMap IS.NET不出图的常见问题
查看>>
闲聊Redis
查看>>
flex 学习总结
查看>>
Windows Phone 7 ManipulationStarted 事件
查看>>
解决ubuntu下软件包没有完整安装导致新立得无法打开
查看>>
配置GDB以支持查看stl容器数据
查看>>
Sql Server2005 Transact-SQL 新兵器学习总结之-TRY…CATCH
查看>>
WPF中MVVM模式原理分析与实践(转)
查看>>
javascript控制不同行不同颜色
查看>>
软件工程 软件的估计为什么这么难
查看>>
“如何有效沟通”培训小结
查看>>
[原创].串行ADC TLC549读取实验,Verilog版本
查看>>
用接口管理对象的生命周期.
查看>>
ASPNET_WP.exe进程
查看>>
如何在SSIS的脚本组件中访问变量
查看>>
C#利用Web Service实现短信发送
查看>>
VB中控制AutoCAD退出程序
查看>>
linux 启动过程以及 /etc/rc.d/init.d/目录的一点理解
查看>>
24个很酷的 CSS3 文本效果示例及教程
查看>>