博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java数据结构——链表-单链表
阅读量:6326 次
发布时间:2019-06-22

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

<1>链表

<2>引用和基本类型

<3>单链表

 

//=================================================// File Name       :	LinkList_demo//------------------------------------------------------------------------------// Author          :	Common//类名:Link//属性://方法:class Link{			//链节点类	public int iData;	public double dData;	public Link next;				//链表中下一个节点的引用		public Link(int iData, double dData) {		super();		this.iData = iData;		this.dData = dData;	}		public void displayLink(){			//显示当前节点的值		System.out.println("iData="+iData+","+"dData"+dData);	}	}//类名:LinkList//属性://方法:class LinkList{	private Link first;			//只需要第一个节点,从第一个节点出发即可定位所有节点	public LinkList() {			//构造函数		this.first = null;	}		public boolean isEmpty(){		return (first == null);	}		public void insertFirst(int id,double dd){		//插入元素是从链表的头开始插入		Link newLink = new Link(id,dd);		newLink.next = first;		first = newLink;	}		public Link deleteFirst(){		Link temp = first;		//暂存first		first = first.next;			//把next设为first		return temp;				//返回原来的first	}		public void displayList(){		System.out.println("List(first-->last):");		Link current = first;			//用于不断改变位置实现遍历		while(current != null){			current.displayLink();			current = current.next;		}	}}//主类//Function        : 	LinkList_demopublic class LinkList_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		LinkList theList = new LinkList();		theList.insertFirst(11, 11.1);		theList.insertFirst(22, 22.2);		theList.insertFirst(33, 33.3);		theList.insertFirst(44, 44.4);		theList.insertFirst(55, 55.5);		theList.displayList();		while(!theList.isEmpty()){			Link aLink = theList.deleteFirst();			System.out.print("delete:");			aLink.displayLink();		}		theList.displayList();	}}

 

//=================================================// File Name       :	LinkList_demo//------------------------------------------------------------------------------// Author          :	Common//类名:Link//属性://方法:class Link{			//链节点类	public int iData;	public double dData;	public Link next;				//链表中下一个节点的引用		public Link(int iData, double dData) {		super();		this.iData = iData;		this.dData = dData;	}		public void displayLink(){			//显示当前节点的值		System.out.println("iData="+iData+","+"dData"+dData);	}	}//类名:LinkList//属性://方法:class LinkList{	private Link first;			//只需要第一个节点,从第一个节点出发即可定位所有节点	public LinkList() {			//构造函数		this.first = null;	}		public boolean isEmpty(){		return (first == null);	}		public void insertFirst(int id,double dd){		//插入元素是从链表的头开始插入		Link newLink = new Link(id,dd);		newLink.next = first;		first = newLink;	}		public Link deleteFirst(){		Link temp = first;		//暂存first		first = first.next;			//把next设为first		return temp;				//返回原来的first	}		public void displayList(){		System.out.println("List(first-->last):");		Link current = first;			//用于不断改变位置实现遍历		while(current != null){			current.displayLink();			current = current.next;		}	}		public Link find(int key){					//查找指定的关键字		Link current = first;		while(current.iData != key){			if(current.next == null)				return null;			else				current = current.next;		}		return current;	}		public Link delete(int key){			//如果current的值匹配,则删除		Link current = first;						Link previous = first;		//没有匹配到值		while(current.iData != key){			if(current.next == null)				return null;			else{							//pre和cur向后移动				previous = current;				current = current.next;			}		}		//匹配到值		if(current == first)		//只有一个first,并匹配,则把first设成first.next			first = first.next;		else								//current的值匹配,则删除,并把cur的next赋给pre的next			previous.next = current.next;		return current;	}}//主类//Function        : 	LinkList_demopublic class LinkList_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		LinkList theList = new LinkList();		theList.insertFirst(11, 11.1);		theList.insertFirst(22, 22.2);		theList.insertFirst(33, 33.3);		theList.insertFirst(44, 44.4);		theList.insertFirst(55, 55.5);		theList.displayList();				Link f = theList.find(22);		if(f != null){			System.out.print("找到:");			f.displayLink();		}		else			System.out.print("没有找到");				Link d = theList.delete(32);		if(d != null){			System.out.print("删除:");			d.displayLink();		}		else			System.out.print("没有找到匹配的删除");			}}

 

转载地址:http://dkwoa.baihongyu.com/

你可能感兴趣的文章
Python 设计模式系列之二: 创建型 Simple Factory 模式
查看>>
PHP面试题之算法解析
查看>>
【多线程同步案例】Race Condition引起的性能问题
查看>>
datetime的小坑
查看>>
QT-简易视频播放器
查看>>
第一次毕业设计任务书
查看>>
shell脚本编程基础
查看>>
archlinux flash chromium lib path
查看>>
查询指定时间段的数据
查看>>
XenServer 优化
查看>>
mysql中 decimal、numeric数据类型
查看>>
Android 访问网络须知
查看>>
p1341 无序字母对
查看>>
loj10099 矿场搭建
查看>>
JQ 1
查看>>
简单用CreateThread传递自定义参数
查看>>
机器学习资源
查看>>
DJANGO 自定义分页组件
查看>>
【LeetCode每天一题】Convert Sorted Array to Binary Search Tree(根据有序数组构建平衡二叉树)...
查看>>
DES加密系统的实现
查看>>