/**
* 单链表操作
* Create by Administrator
* 2018/6/14 0014
* 下午 2:05
**/
public class Link { public int iData;
public double dData;
public Link next; public Link(int id, double dd) {
this.iData = id;
this.dData = dd;
} public void displayLink() {
System.out.print("{" + iData + " , " + dData + "} ");
}
} class LinkList { private Link first; public LinkList() {
this.first = null;
} public boolean isEmpty(){ //判断链表是否为空
return (first == null);
} 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){ //删除指定对象
Link current = first;
Link previous = first;
while (current.iData != key){
if(current.next == null){
return null;
}else {
previous = current;
current = current.next;
}
}
if(current == first){
first = first.next;
}else {
previous.next = current.next;
}
return current;
} public void insertFirst(int id,double dd){
Link link = new Link(id, dd);
link.next = first; //储存对象的引用
first = link; //把当前对象赋值给first
} public Link deleteFrst() { //删除首链表,正好和添加相反
if(!isEmpty()){
Link temp = first;
first = first.next;
return temp;
}
return null;
} public void displayList(){
System.out.print("List (first-->last): ");
Link current = first;
while(current != null){
current.displayLink();
current = current.next;
}
System.out.println("");
} public static void main(String[] args) {
LinkList theList = new LinkList(); theList.insertFirst(22,2.99);
theList.insertFirst(44,4.99);
theList.insertFirst(66,6.99);
theList.insertFirst(88,8.99);

        theList.displayList();

//        while (!theList.isEmpty()){
// Link aLink = theList.deleteFrst();
// System.out.print("Deleted");
// aLink.displayLink();
// System.out.println("");
// } Link f = theList.find(44);
if(f != null){
System.out.print("find Link: ");
f.displayLink();
System.out.println("");
Link result = theList.delete(f.iData);
if(result != null){
System.out.print("delete success ");
result.displayLink();
}
}
System.out.println("");
theList.displayList();
}
}

  

java学习之—链表(1)的更多相关文章

  1. Java学习之链表

    数据结构学了,java实现下 package com.gh.Link; /** * 链表的实现 * @author ganhang * */ public class Links { public s ...

  2. Java学习笔记--链表

    心在山东身在吴,飘蓬江海漫嗟吁. 他时若遂凌云志, 敢笑黄巢不丈夫. --水浒传 先上源代码,LinkedList类: private static class Node<E> { E i ...

  3. java学习之—链表(4)

    /** * 使用链表实现队列 * Create by Administrator * 2018/6/19 0019 * 下午 4:37 **/ public class Link { public l ...

  4. java学习之—链表(3)

    /** * 使用链表实现队列 * Create by Administrator * 2018/6/19 0019 * 下午 4:37 **/ public class Link { public l ...

  5. java学习之—链表(2)

    /** * 双端链表操作 * Create by Administrator * 2018/6/14 0014 * 下午 2:05 **/ class Link1 { public long dDat ...

  6. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  7. 第八周java学习总结

    学号 20175206 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型与集合框架 主要内容 泛型 链表 堆栈 散列映射 树集 树映射 重点和难点 重点:泛型和集合的使 ...

  8. java学习(五)

    学号 20189214 <Java程序设计>第五周学习总结 教材学习内容总结 输入输出 文件系统可以包含3种类型的对象:文件.目录和符号链接. 一个文件或路径是一个java.io.File ...

  9. 20165236 第六周Java学习总结

    20165236 第六周Java学习总结 一. 第八章内容: 1.String 类: String对象.常量对象:字符串并置: 常用方法: length,equals,startsWith,compa ...

随机推荐

  1. SQLite中的WAL机制详细介绍-与回滚日志原理

    一.什么是WAL? WAL的全称是Write Ahead Logging,它是很多数据库中用于实现原子事务的一种机制,SQLite在3.7.0版本引入了该特性. 二.WAL如何工作? 在引入WAL机制 ...

  2. P1553 数字反转(升级版)(模拟)

    花了2个小时,写的..mmp只想说,还是我太菜了. #include<iostream> #include<cstring> using namespace std; ]; i ...

  3. copyOfRange的应用

    package com.Summer_0420.cn; import java.util.Arrays; /** * @author Summer * copyOfRange的应用 */ public ...

  4. 20175330 实验二《Java面向对象程序设计》实验报告

    一.前期准备:unit的安装与使用:打开idea,Preferences中点击Plugins,在market中搜索junit,如图点选JUnitGenerator V2.0进行安装,安装后会显示ins ...

  5. TextField

    TextFiled 是一个输入Widget,属性如下: this.controller,//这个是传输数据用的this.focusNode,this.decoration = const InputD ...

  6. ExFilePicker的使用 — 获取本地图片资源并用RecyclerView展示出来

    代码其实很简单,所以就不多进行文字说明,直接上完整的代码: 第一步:在app/build.gradle添加需要使用到的依赖库:(这里对引用的版本冲突问题作了处理,详情请看链接:https://www. ...

  7. Redis学习之底层链表源码分析

    Redis底层链表的源码分析: 一.链表结点的结构(单个结点): // listNode 双端链表节点 typedef struct listNode { // 前置节点 struct listNod ...

  8. HDU-1698-Just a Hook-线段树区间修改

    In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. T ...

  9. SpringCloud微服务架构分布式组件如何共享session对象

    一.简单做一个背景说明1.为说明问题,本文简单微服务架构示例如下 2.组件说明分布式架构,每个组件都是集群或者主备.具体说明如下:zuul service:网关,API调用都走zuul service ...

  10. PS制作恐怖逼真滴血文字

    序言:各位同学们好,今天给大家带来一例恐怖逼真滴血文字效果的制作教程,本人比较喜欢看恐怖游戏,是看不是玩,然后就突发奇想地做了这件作品,最后的效果我很喜欢,而且制作起来难度并不大,在此分享自己在作图时 ...