java学习之—链表(1)
/**
* 单链表操作
* 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)的更多相关文章
- Java学习之链表
数据结构学了,java实现下 package com.gh.Link; /** * 链表的实现 * @author ganhang * */ public class Links { public s ...
- Java学习笔记--链表
心在山东身在吴,飘蓬江海漫嗟吁. 他时若遂凌云志, 敢笑黄巢不丈夫. --水浒传 先上源代码,LinkedList类: private static class Node<E> { E i ...
- java学习之—链表(4)
/** * 使用链表实现队列 * Create by Administrator * 2018/6/19 0019 * 下午 4:37 **/ public class Link { public l ...
- java学习之—链表(3)
/** * 使用链表实现队列 * Create by Administrator * 2018/6/19 0019 * 下午 4:37 **/ public class Link { public l ...
- java学习之—链表(2)
/** * 双端链表操作 * Create by Administrator * 2018/6/14 0014 * 下午 2:05 **/ class Link1 { public long dDat ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 第八周java学习总结
学号 20175206 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型与集合框架 主要内容 泛型 链表 堆栈 散列映射 树集 树映射 重点和难点 重点:泛型和集合的使 ...
- java学习(五)
学号 20189214 <Java程序设计>第五周学习总结 教材学习内容总结 输入输出 文件系统可以包含3种类型的对象:文件.目录和符号链接. 一个文件或路径是一个java.io.File ...
- 20165236 第六周Java学习总结
20165236 第六周Java学习总结 一. 第八章内容: 1.String 类: String对象.常量对象:字符串并置: 常用方法: length,equals,startsWith,compa ...
随机推荐
- ASP.NET 应用程序遭遇Server Application Unavailable问题的解决的方法
公司服务器有.NET2的应用在执行,而我使用了.NET4平台开发,本机測试没问题,扔服务器发现要么我的新平台不好使,要么.NET2的旧平台不好使,各种重新启动IIS服务和WWW服务都无济于事 当我意识 ...
- Python 浅拷贝copy()与深拷贝copy.deepcopy()
首先我在这介绍两个新的小知识,要在下面用到.一个是函数 id() ,另一个是运算符 is.id() 函数就是返回对象的内存地址:is 是比较两个变量的对象引用是否指向同一个对象,在这里请不要和 == ...
- ansible的playbook进行yum批量安装nginx最新版本
环境:centos7 版本:nginx最新版本 软件: ansible 作用: 进行批量执行不同机器上,进行安装nginx版本 检查脚本是否正确: [root@ansible-test ansible ...
- selenium之frame
https://blog.csdn.net/huilan_same/article/details/52200586
- hyperledge工具-cryptogen
参考:http://baijiahao.baidu.com/s?id=1596614770784685300&wfr=spider&for=pc cryptogen是Hyperledg ...
- wxWidgets 在 Linux 下开发环境配置
本文基于 CodeBlocks (16.0.1) 和 wxWidgets (3.0.2) 搭建 Linux 下 GUI 开发环境. 1. 安装 CodeBlocks Ubuntu 默认的源当前 Cod ...
- Python脱产8期 Day08 2019/4/22
一.三种字符串 1.普通字符串:u'以字符作为输出单位‘ #print(u‘abc’)#用于显示 2.二进制字符串:b'以字节作为输出单位’#用于传输 3.原义字符串:r‘以字符作为输出单位,原样输 ...
- SimpleDialogBox
import 'package:flutter/material.dart';import 'dart:ui';import 'dart:async';enum Option{A,B,C}void m ...
- centos 7 安装mqtt 修改用户名和密码
我先新买个Centos 的系统 咱登录呢就用这个软件,主要是方便,可以少安装一些东西 根据自己的系统选择,上面的是32位的. 输入 root 回车 输入密码然后回车 输入的时候什么也不显示 输入 c ...
- 利用世界杯,读懂 Python 装饰器
Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic. 今天就结合最近的世界杯带大家理解下装饰器. 德 ...