java单链表查询功能,Java 实现简答的单链表的功能

作者:林子木  博客网址:http://blog.csdn.net/wolinxuebin

參考网址:http://blog.csdn.net/sunsaigang/article/details/5751780

描写叙述:使用java实现简答的单链表的功能

定义了一个MyList类

包括的函数:

getHead()返回头指针。

isEmpty() 推断是否为空;

addFirst(T element)在链表的头部增加元素。

addLast(T element)在链表的尾部增加元。

add(T fix,T element)在指定元素fix后插入新的元素

remove(T element) 删除指定元素

contains(T element)查看是否包括某元素

printList()打印链表。

其它:

使用泛型

程序代码例如以下:

public class MyList{ //使用泛型

/*

* 定义节点类Node

*/

private static class Node{

T element;

Node next;

Node(T element,Node next){ //构造函数

this.element = element;

this.next = next;

}

Node(T element){ //构造函数

this(element,null); //调用上面的构造函数

}

}

//定义MyList成员

private Node head; //定义头结点

/*

*构造函数

*/

MyList(){

head = null;

}

/*

*返回头指针

*/

public Node getHead(){

return head;

}

/*

*查看链表是否为空

*/

public boolean isEmpty(){

return null == head; //推断是否为空

}

/*

*将元素增加链表头

*/

public void addFirst(T element){

if(isEmpty()) head = new Node(element);

else head = new Node(element,head);

}

/*

*将元素增加链表尾

*/

public void addLast(T element){

if(isEmpty()) head = new Node(element);//假设为空

else {

Node node = head; //不为空,就使用查找,知道表尾

while(node.next != null) node = node.next;

node.next = new Node(element);

}

}

/*

*在指定元素后增加新元素

*/

public boolean add(T fix,T element){

if(isEmpty()) return false;

else {

Node node = head; //定义中间变量

while(node.element != fix && null != node.next){//程序跳出条件为1、到表尾 2、找到这个元素

node = node.next; //查找是否含有元素

}

//这里採用直接使用while查找,而推断在while外面。能够加高速度

if(node.element == fix){ //这里首先推断是否找到元素

node.next = new Node(element,node.next) ;//将element插入。并将element的next指向下一个元素

return true;

}

else

return false;

}

}

/*

*删除指定元素

*/

public boolean remove(T element){

if(isEmpty()) return false;

Node node = head; //定义变量pre 和 node

Node pre = null;

while(node.element != element && null != node.next){ //程序跳出条件为1、到表尾 2、找到这个元素

pre = node; //保存前面的变量

node = node.next; //指向下一个元素

}

if(node.element == element){

if(null == pre) //假设是指定元素是第一个元素

head = head.next;

else

pre.next = node.next;

return true;

}

else

return false;

}

/*

*查看是否包括某元素

*/

public boolean contains(T element){

if(isEmpty()) return false;

else {

Node node = head;

while(node.element != element && null != node.next)//程序跳出条件为1、到表尾 2、找到这个元素

node = node.next; //不断指向下一个程序

if(node.element == element)

return true;

else

return false;

}

}

/*

*打印链表

*/

public void printList(){

if(isEmpty()){

System.out.println("null");

}

else{

for(Node node=head; node!=null;node=node.next)

System.out.print(node.element +" ");

System.out.println(); //打印回车

}

}

public static void main(String[] args) {

MyList list = new MyList();//若不加便是为指定參数类型,将会警告

//使用了未经检查或不安全的操作。

//有关具体信息, 请使用 -Xlint:unchecked 又一次编译。

for(int i=0; i<10; i++){

list.addFirst(i);

}

list.printList(); //打印

list.remove(0); //删除

list.printList(); //打印

list.addLast(0); //在尾部增加

list.printList(); //打印

list.add(7,-7); //在7之后插入-7

list.printList(); //打印

if(list.contains(-7))

System.out.println("is in the list !");

else

System.out.println("is not in the list !");

}

}

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

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

相关文章

记一次 .NET 某流媒体独角兽 API 句柄泄漏分析

一&#xff1a;背景 1. 讲故事上上周有位朋友找到我&#xff0c;说他的程序CPU和句柄都在不断的增长&#xff0c;无回头趋势&#xff0c;查了好些天也没什么进展&#xff0c;特加wx寻求帮助&#xff0c;截图如下&#xff1a;看的出来这位朋友也是非常郁闷&#xff0c;出问题还出…

iphone最新款手机_苹果罕见“跌停”!遭遇6年来最惨淡一夜,2019年全球股市第一颗雷引爆...

2019年全球股市的第一颗大雷引爆了。受苹果下调营收预期影响&#xff0c;周四盘中&#xff0c;苹果股价一度跌至142.08美元&#xff0c;创逾一年半新低&#xff0c;日内跌幅超过10%&#xff0c;市值缩水750亿美元。最终&#xff0c;苹果收跌9.96%&#xff0c;创出自2013年1月以…

MVC学习之分页 【转】

分页如果dinners列表记录过多&#xff0c;为了让用户更方便浏览&#xff0c;我们需要实现分页显示&#xff0c;而不是一次显示大量的记录列表。Index() Action方法更新DinnersController类的Index() action方法代码如下&#xff1a;//// GET: /Dinners/public ActionResult Ind…

构件图

构件图 目录 构件图概要... 1 构件图中的事物及解释... 1 构件图中的关系及解释... 1 我的构件图... 1 构件图用于静态建模&#xff0c;是表示构件类型的组织以及各种构件之间依赖关系的图。构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响…

不小心把硬盘摔了一下,结果电脑变成这样了......

1 会主动要求换尿裤的小宇航员▼2 其实赚钱这个事儿我也不太会▼3 春困、夏倦、秋乏、冬眠一年四季都好适合睡觉啊&#xff01;▼4 这是硬盘摔了&#xff0c;结果把显示器心疼坏了吧&#xff1f;▼5 柯基&#xff1a;弱小、可怜▼6 朋友相册里的你▼7 人类迷惑行为之放生…

java实现数字转mac,Java Ethernet.getSourceMAC方法代码示例

import org.onlab.packet.Ethernet; //导入方法依赖的package包/类/*** Process an incoming PIM Hello message. There are a few things going on in* this method:* * We may have to create a new neighbor if one does not already exist* We may need to re-elect a new …

win10前置耳机插孔没声音_音频服务未运行怎么办?win7和win10电脑没声音了恢复方法...

很多人可能都会问电脑没声音了&#xff0c;如何恢复&#xff1f;其实造成这种情况的原因有很多&#xff0c;一般需要一个一个排查。这次&#xff0c;小编跟大家分享其中的一个原因&#xff0c;以及具体的解决方法。个别小伙伴的笔记本电脑&#xff0c;每次开机总会提示音频服务…

开源 java CMS - FreeCMS2.2 系统配置

2019独角兽企业重金招聘Python工程师标准>>> 项目地址&#xff1a;http://www.freeteam.cn/ 系统配置 管理系统使用的配置项。 从左侧管理菜单点击系统配置进入。 从FreeCMS 1.7开始支持 数据变更后栏目页面静态化间隔时间(单位为分)&#xff1a;修改栏目、更新…

EF Core使用Simple Logging输出日志

在使用EF Core的时候&#xff0c;很多时候需要知道EF Core实际执行的SQL语句是什么。Simple Logging是EF Core提供的一项功能&#xff0c;可用于在开发和调试应用程序时轻松获取日志。这种形式的日志记录需要最少的配置&#xff0c;而不需要其他NuGet包。功能一瞥配置起来非常简…

项目执行过程

执行过程组包含完成项目管理计划中确定的工作以实现项目目标的一组过程。包括以下项目管理过程&#xff1a; 指导与管理项目执行&#xff1a; 实现项目目标而执行项目管理计划中所确定的工作的过程实施质量保证&#xff1a;审计质量要求和质量控制测量结果组建项目团队&#xf…

一步一步学Ruby(二十一):文件操作2

1、打开读取文件 file File.open( "cnblogslink.txt" ) file.each { |line| print "#{file.lineno}. ", line } file.close 输出: 1. 社区 2. 新闻 3. 社区 4. 新闻 5. 招聘 6. 博问 7. 小组 8. 闪存 9. 网摘 10. .NET频道 file.lineno显示的是行号 2、…

如何用全球顶级名画,成为全行业最令人羡慕的人?

▲ 点击查看马克思曾说&#xff1a;“如果你想得到艺术的享受&#xff0c;那你就必须是一个有艺术修养的人。”假如现在有下面两幅画&#xff0c;站在艺术的角度上&#xff0c;你会选择哪个呢&#xff1f;或者我们可以换一个问法&#xff1a;哪一种猫才是最符合你心中标准的猫&…

电脑启动后黑屏只有鼠标_电脑加装固态硬盘后出现黑屏或蓝屏解决方案

以下内容以本人遇到的真实问题为例&#xff0c;从找到加装固态硬盘后出现黑屏及蓝屏的原因&#xff0c;到成功解决问题&#xff0c;请各位看官听我娓娓道来&#xff0c;也希望为遇到同样问题的广大网友拨云见日&#xff0c;废话不多说&#xff0c;走起……一、问题描述:1. 背景…

mysql数据库的备份和二进制日志恢复

mysql备份和bin-log日志备份数据&#xff1a; mysqldimp -uroot -p test -l -F /tmp/test.sql-l 读锁-F即flush logs, 可以重新生成的日志文件&#xff0c;当然包括log-bin日志。查看bin-log日志用 mysql>show master status;清空表数据 truncate tables;根据二进制bin-log…

2021编程语言排行:C#飙升,Python蝉联榜首

文 | 白开水不加糖出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;IEEE Spectrum 2021 年度编程语言排行榜现已发布。该榜单一年发布一次&#xff0c;今年是其发布的第八年。今年的排行榜包含 55 种语言&#xff0c;其排序综合 8 个重要线上数据源的 11 …

C# 生成私钥和公钥

应该有好多方法&#xff0c;我就用系统自动生成的。 RSACryptoServiceProvider RSAalg new RSACryptoServiceProvider(); stringstr_Private_Key Convert.ToBase64String(RSAalg.ExportCspBlob(true)); stringstr_Public_Key Convert.ToBase64String(RSAalg.ExportCspBlob(f…

GitHub中教程资源 | 共21个图形绘制教程

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 写在前面 今天分享在GitHub中找到的教程资源&#xff0c;此教程是来自iMeta期刊及“农心生信工作室”的作品。发表在GitHub中&#xff0c;大家可以自行下载。 包含了21个图形的绘制&#xff0c;我大体看了一下…

php 中 t怎么打开,怎么在PHP项目中实现一个explort() 功能

怎么在PHP项目中实现一个explort() 功能发布时间&#xff1a;2020-12-28 16:36:06来源&#xff1a;亿速云阅读&#xff1a;108作者&#xff1a;Leah这篇文章给大家介绍怎么在PHP项目中实现一个explort() 功能&#xff0c;内容非常详细&#xff0c;感兴趣的小伙伴们可以参考借鉴…

随便想想

不知不觉&#xff0c;毕业已经有三个多月了&#xff0c;工作也三个多月了。有时候静下心来想想&#xff0c;时间过得真快&#xff0c;挺怀念大学三年里所过的每分每秒。从小学到大学&#xff0c;有过各种各样的记忆&#xff0c;而大学的记忆留给我的是最宝贵。在这三年里&#…

盘点那些欺骗我感情的数学定理

全世界只有3.14 % 的人关注了爆炸吧知识一直以来&#xff0c;关于定理、公式的命名&#xff0c;人们都倾向于用数学家的名字命名&#xff0c;不仅简单方便&#xff0c;还可以达到纪念创立人的效果。不过&#xff0c;也不是每一次都这么好的&#xff0c;超模君发现&#xff0c;有…