java宋江,Java编程内功-数据结构与算法「单链表」,

package com.structures.linkedlist;

public class SingleLinkedListDemo {

public static void main(String[] args) {

HeroNode heroNode1 = new HeroNode(1, "宋江", "及时雨");

HeroNode heroNode2 = new HeroNode(2, "卢俊义", "玉麒麟");

HeroNode heroNode3 = new HeroNode(3, "吴用", "智多星");

HeroNode heroNode4 = new HeroNode(4, "林冲", "豹子头");

SingleLinkedList singleLinkedList = new SingleLinkedList();

singleLinkedList.addByNo(heroNode3);

singleLinkedList.addByNo(heroNode2);

singleLinkedList.addByNo(heroNode4);

singleLinkedList.addByNo(heroNode1);

singleLinkedList.list();

}

}

//定义SingleLinkedList管理我们的英雄

class SingleLinkedList {

//先初始化一个头节点,头节点不能动,将来遍历用

private HeroNode head = new HeroNode(0, "", "");

//添加节点到单向链表

//思路:当不考虑编号的顺序时

//1. 找到当前链表的最后节点

//2. 将最后这个节点的next域指向新的节点

public void add(HeroNode node) {

//因为head节点不能动,因此我们需要一个辅助遍历temp

HeroNode temp = head;

//遍历链表,找到最后

while (temp.next != null) {

//找到链表的最后

//如果没有找到temp就后移

temp = temp.next;

}

temp.next = node;

}

//第二种添加英雄的方式,在添加英雄时,根据排名将英雄插入到指定位置

//如果有这个排名,则添加失败,并给出提示

public void addByNo(HeroNode heroNode) {

//因为head节点不能动,因此我们需要一个辅助遍历temp

//因为单链表,因此找的temp是位于添加位置的前一个节点,否则加入不了

HeroNode temp = head;

boolean flag = false;//标识添加的编号是否存在,默认false

while (true) {

if (temp.next == null) {

break;

}

if (temp.next.no > heroNode.no) {//位置找到,就在temp的后面插入

break;

} else if (temp.next.no == heroNode.no) {

//编号已存在

flag = true;

break;

}

temp = temp.next;

}

if (flag) {

System.out.printf("准备插入的英雄的编号 %d 已存在,不能加入\n", heroNode.no);

} else {

//插入链表temp的后面

heroNode.next = temp.next;

temp.next = heroNode;

}

}

//显示链表[遍历]

public void list() {

//判断链表是否为空

if (head.next == null) {

System.out.println("链表为空");

}

//因为头节点不能动,因此我们需要一个辅助变量来遍历

HeroNode temp = head.next;

while (temp != null) {

//判断是否到最后

//输出节点的信息

System.out.println(temp);

//将temp后移

temp = temp.next;

}

}

}

//定义一个HeroNode,每个HeroNode对象就是一个节点

class HeroNode {

public int no;

public String name;

public String nickName;

public HeroNode next;//指向下一个节点

//构造器

public HeroNode(int no, String name, String nickName) {

this.no = no;

this.name = name;

this.nickName = nickName;

}

public HeroNode getNext() {

return next;

}

public void setNext(HeroNode next) {

this.next = next;

}

@Override

public String toString() {

return "HeroNode{" +

"no=" + no +

", name='" + name + '\'' +

", nickName='" + nickName + '\'' +

'}';

}

}

/*

HeroNode{no=1, name='宋江', nickName='及时雨'}

HeroNode{no=2, name='卢俊义', nickName='玉麒麟'}

HeroNode{no=3, name='吴用', nickName='智多星'}

HeroNode{no=4, name='林冲', nickName='豹子头'}

*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能家居逐渐融入AI技术 向大众市场扩张仍需时间

虽然智能家居变得越来越普遍,并且大众认知度越来越高,但是在这一技术变得像智能手机一样无处不在之前,OEM和服务提供商仍然有很长的路要走。 在2016年11月在硅谷举行的智能家居峰会上,代表们听到了来自整个价值链上的声音&#xf…

python 示例_Python使用示例设置add()方法

python 示例设置add()方法 (Set add() Method) add() method is used to add an element to the set, the method accepts an element and adds the elements to this set. add()方法用于将元素添加到集合中,该方法接受元素并将元素添加到该集合中。 Note: If the …

php怎么引用表单元素,表单元素:最全的各种html表单元素获取和使用方法总结...

表单是网页与用户的交互工具,由一个元素作为容器构成,封装其他任何数量的表单控件,还有其他任何元素里可用的标签,表单能够包含、、、、、等表单控件元素。表单元素有哪些呢?它包含了如下的这些元素,输入文…

数据中心部署气流遏制系统需要考虑的十大要素

数据中心气流遏制策略能够大幅提高传统数据中心制冷系统的可预测性和效率。事实上,绿色网格组织(The Green Grid)将气流管理策略称作“实施数据中心节能计划的起点”。但是,大多数已有数据中心由于受各种条件的制约,只…

JAVA语言异常,Java语言中的异常

1、异常分类从产生源头来看,Java语言中的异常可以分为两类:JVM抛出的异常。比如:访问null引用会引发NullPointerException;0作为除数,如9/0,JVM会抛出ArithmeticException;内存消耗完&#xff0…

使用Mybatis Generator结合Ant脚本快速自动生成Model、Mapper等文件的方法

新建generatorConfig.xml和build_mybatis.xml&#xff1a; jar下载 <dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency> <depe…

java bitset_Java BitSet or()方法与示例

java bitsetBitSet类或()方法 (BitSet Class or() method) or() method is available in java.util package. or()方法在java.util包中可用。 or() method is used to perform logical OR between this BitSet and the given BitSet(bs). This BitSet is updated when either t…

matlab 细化函数,MATLAB图像处理工具箱函数(细化篇).doc

MATLAB图像处理工具箱函数(细化篇)第3章 MATLAB数字图像处理工具箱3.1 MATLAB图像预处理3.1.1 图像处理的基本操作1. 读入并显示一幅图像clear %清除所有的工作平台变量close all %关闭已打开的图形窗口Iimread (pout.tif); %读取图像pout.tif(该图像是图像处理工具箱自带的图像…

STM32启动解析

启动方式对的不同下载模式 STM32可以通过BOOT引脚的配置&#xff0c;来选择不同的启动模式------对应不同的下载方式。 仿真器下载—— 内部FLASH的启动方式 串口下载 —— 系统存储器的启动方式 内部SRAM一般不用&#xff0c;不讲 启动过程 以内部FLASH的启动方式为例&am…

OpenBSD基金会收到锤子科技约140万捐赠款

11月26日消息&#xff0c;给开源项目捐款一向是锤子科技发布会的传统&#xff0c;去年发布会的门票收入捐给了国人章亦春主导的开源项目OpenResty。今年&#xff0c;锤子科技选择将收益捐赠给OpenBSD基金会。OpenBSD基金会收到锤子科技约140万捐赠款 OpenBSD基金会11月23日发布…

自动化部署kvm虚拟机_自动化虚拟助手

自动化部署kvm虚拟机The automated virtual assistant or commonly called personal assistants, are developed to serve its users by performing some tasks, setting reminders and much more based on the input is given and local awareness. It is integrated with a l…

php 数据库编码,php怎么设置数据库编码方式

在php中&#xff0c;可以使用mysql_query()函数来设置mysql数据库的编码方式&#xff1b;具体方法&#xff1a;在mysql_connect()语句之后添加“mysql_query("set names 编码方式");”代码即可。本教程操作环境&#xff1a;windows7系统、PHP7.1版&#xff0c;DELL G…

mysql截取字符串与reverse函数

mysql的函数大全&#xff1a; http://www.jb51.net/Special/606.htm 这个网页上很多知识点&#xff0c;可以学习下&#xff0c;关于mysql的函数&#xff0c;也可以作为API查询&#xff1a; 这里只说下mysql的截取函数和reverse函数&#xff1a; MySQL 字符串截取函数&#xff1…

flask sql外键使用_如何在SQL中使用外键?

flask sql外键使用Basically, Foreign Key represents relationship between tables. 基本上&#xff0c; 外键代表表之间的关系 。 Syntax: 句法&#xff1a; column-name data_type (size) CONSTRAINT constraint-name References Table-name (Column-name)Example: 例&a…

php发展历,PHP的发展历程

PHP的发展历程了解一门语言&#xff0c;我们必须知道这门语言的发展史&#xff0c;现在我通过版本的变化以时间轴的形式来说明PHP的发展历程。1.1995年初PHP1.0诞生Rasmus Lerdof发明了PHP&#xff0c;这是简单的一套Perl脚本&#xff0c;用来跟踪访问者的信息。这个时候的PHP只…

中国互联网安全大会将召开 网络安全再获关注

从2016中国互联网安全大会筹委会获悉&#xff0c;将于8月16日在国家会议中心召开的第四届中国互联网安全大会筹备工作已全部就绪。 据经济参考报7月15日消息&#xff0c;中国网络空间安全协会副理事长、360公司总裁兼企业安全集团董事长齐向东表示&#xff0c;此次中国互联网安…

合并排序算法排序过程_外部合并排序算法

合并排序算法排序过程外部分类 (External sorting) External sorting is a technique in which the data is stored on the secondary memory, in which part by part data is loaded into the main memory and then sorting can be done over there. Then this sorted data wi…

php榛子云短信验证,java + maven +榛子云短信 实现发送短信验证码功能

如何使用java maven的项目环境发送短信验证码&#xff0c;本文使用的是榛子云短信的接口。下载下来是jar文件&#xff0c;需要将jar发布到本地的maven仓库中&#xff0c; 在cmd环境下输入:mvn install:install-file -DgroupIdcom.zhenzi -DartifactIdsms -Dversion1.0.0 -Dpac…

django css_在应用程序上实现CSS Django的

django cssCSS (Cascade Style Sheets) are used to implement design. CSS(级联样式表)用于实现设计。 Step 1: Create a Sandbox, Activate it, Install Django and Create Sample Project 步骤1&#xff1a;创建一个沙箱&#xff0c;将其激活&#xff0c;安装Django并创建示…

PHPWeb开发入门体验学习笔记

PHPWeb开发入门体验学习笔记4一、PHP web应用开发须知1.入门要点程序员三个阶段&#xff1a;码农&#xff08;速成技能&#xff09;->工程师&#xff08;长期知识&#xff09;->专家&#xff08;研究论文&#xff09;编程三要素&#xff1a;声明变量&#xff08;系统、全…