/**
* 单链表操作
* 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. go 调用windows dll 的三种方法

    参考:https://blog.csdn.net/qq_39584315/article/details/81287669 大部分代码参考:https://studygolang.com/articl ...

  2. sqlalchemy和flask-sqlalchemy的几种分页方法

    sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1,page_size=10:所有分页查询 ...

  3. jupyter notebook安装纪要

    本次教程使用python工具pip安装.更多安装方式请参考官网. 1.升级pip工具到最新 2.运行安装执行 pip install jupyter 3.安装中 4.更改工作目录 4.1获取配置文件路 ...

  4. Linux进程管理 (2)CFS调度器

    关键词: 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 Linux进程管理 ( ...

  5. "INSTALL_FAILED_DUPLICATE_PERMISSION "错误解决

    我们在进行Android组件安全测试时,如果遇到声明了权限的组件,在编写PoC时,可能会遇到如下错误提示: INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.m ...

  6. Kubernetes学习之路(26)之kubeasz+ansible部署集群

    目录 1.环境说明 2.准备工作 3.分步骤安装 3.1.创建证书和安装准备 3.2.安装etcd集群 3.3.安装docker 3.4.安装master节点 3.5.安装node节点 3.6.部署集 ...

  7. 2小时学会Spring Boot(IDE:eclipse)

    一:安装STS插件 官网下载:点此下载STS 注意:STS版本必须与eclipse版本对应 安装教程:http://blog.csdn.net/cryhelyxx/article/details/53 ...

  8. 微服务之:从零搭建ocelot网关和consul集群

    介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成. 首先解释几个本次教程中需要的术语 网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界 ...

  9. python二:数据类型举例练习--小白博客

    一.#字符串 res = 'hello,world' 1.#字符串切片取值:******* print(res[0:5]) 顾头不顾尾,取下标0-4的字符 print(res[0:-1:2]) 步长为 ...

  10. H5 video标签的第二种格式

    36-video标签的第二种格式 2.第二种格式存在的意义: 由于视频数据非常非常的重要, 所以五大浏览器厂商都不愿意支持别人的视频格式, 所以导致了没有一种视频格式是所有浏览器都支持的 这个时候W3 ...