线性链表java实现_java实现线性单链表

/**

*

* 线性单链表

*/

public class LinkedLinearList {

private Node head;

private int length;// 实际长度

/**

* 初始化顺序表,长度为length

*/

public LinkedLinearList() {

length = 0;

head = new Node('0', null);

length++;

}

/**

* 将index位置赋值为c,会覆盖掉原值

*

* @param index

* @param c

*/

public void set(int index, char c) {

Node node = head;

int n = 0;

while (n 

if (node.next == null) {

node.next = new Node('0', null);

length++;

}

node = node.next;

n++;

}

if (node == null) {

node = new Node(c, null);

length++;

} else {

node.data = c;

}

}

/**

* 取得下标为index的值,如果为空返回ascii为零的字符

*

* @param index

* @param c

* @return

*/

public char get(int index) {

if (index > length - 1 || index 

System.out.println("out of size exception!");

return 0;

} else {

Node node = head;

int n = 0;

while (n 

node = node.next;

n++;

}

return node.data;

}

}

/**

* 在index位置插入c,不会覆盖掉原值

*

* @param index

* @param c

*/

public void insert(int index, char c) {

if (index 

System.out.println("out of size exception!");

return;

} else {

Node node = head;

int n = 0;

while (n 

if (node.next == null) {

node.next = new Node('0', null);

length++;

} else {

node = node.next;

}

n++;

}

if (node.next == null) {

node.next = new Node(c, null);

} else {

Node newNode = new Node(c, null);

newNode.next = node.next;

node.next = newNode;

}

length++;

}

}

/**

* 返回长度

*

* @return

*/

public int length() {

return length;

}

/**

* 删除下标为index的元素

*

* @param index

*/

public void delete(int index) {

if (index > length - 1 || index 

System.out.println("delete not exist element exception");

} else {

Node node = head;

int n = 0;

while (n 

if (node.next == null) {

node.next = new Node('0', null);

length++;

} else {

node = node.next;

}

n++;

}

node.next = node.next.next;

length--;

}

}

/**

* 查找c元素,返回第一个找的c元素的下标,没有找到返回-1

*

* @param c

*/

public int findChar(char c) {

Node node = head;

int n = 0;

while (n 

if (node.data == c)

return n;

node = node.next;

n++;

}

return -1;

}

public void show() {

Node node = head;

int n = 0;

while (n 

System.out.print(node.data + ",");

node = node.next;

n++;

}

System.out.println();

}

public static void main(String[] args) {

LinkedLinearList lll = new LinkedLinearList();

lll.set(0, 'a');

lll.set(1, 'b');

lll.set(2, 'c');

lll.set(3, 'd');

lll.set(4, 'e');

lll.show();

lll.insert(2, 'f');

lll.show();

lll.delete(2);

lll.show();

System.out.println(lll.length());

System.out.println(lll.findChar('c'));

lll.set(0, 'z');

lll.show();

}

class Node {

char data;

Node next;

public Node(char data, Node next) {

this.data = data;

this.next = next;

}

}

}

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

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

相关文章

「任性」的C语言之父:因拒付论文装订费错失博士学位,论文52年后重见天日...

他是C语言之父、1983年图灵奖得主,还是Unix的关键开发者。然而,他却因为「任性」没有拿到博士学位,而且当年写的博士论文一丢就是半个世纪。如今,这一神秘的博士论文终于重见天日。很多人可能听说过 Dennis Ritchie 这个人。上世纪…

CS224n笔记3 高级词向量表示

本文转自:http://www.hankcs.com/nlp/cs224n-advanced-word-vector-representations.html 这节课从传统的基于计数的全局方法出发,过渡到结合两者优势的GloVe,并介绍了词向量的调参与评测方法。 复习:word2vec的主要思路 遍历整个…

C# 2.0对现有语法的改进

C# 2.0对现有语法的改进 原注:lover_P出处: [自序] 尽管Microsoft Visual Studio .NET 2005(过去好像叫Visual Studio .NET 2004)一再推迟其发布日期,但广大开发者对其的猜测以及各种媒体对其各方面的“曝光”也似乎已…

一个java类运行时从哪个方法开始_Java的应用程序是从类中的

【填空题】还不走,车来了。【填空题】进路是 运行时所经由的路径。【单选题】()是仿照法国巴黎圣母院设计建造的:【简答题】结合你学习的感受,你认为会计核算程序三大会计要素顺序可以颠倒吗?【填空题】一往无前马当先。【听力题】【判断题】企业所得税是直接税,其纳税人与负税…

C# 第一章 笔记

目录:硬盘 - 工具软件 - 编程开发 - Visual Studio软件:序列号、安装包、魔方虚拟光驱(win7) Visual Studio 2013.exeVisual Studio 2013.msiVisual Studio 2013.iso光盘 -> 光驱光盘镜像文件 -> 虚拟光驱 Win7安装会警告:您当前系统IE…

一粒老鼠屎

我又老生常谈了。本来很久都不去CSDN看文档的评论了。但是今天忍不住又瞄到了几眼,一看那些不屑的,骂人的腔调的评论,就心里堵得难受。CSDN的blog现在可想而知,当应很热闹。但透明和曾毅还有我都没有去用它的blog,我想…

我在深圳,但是家里托人在老家找了一份工作

最近,在微信公众号后台收到一份读者的留言,而且这位读者也是我们GX的,而且更幸运的是,跟我是一个地方的。她是疑惑如下~前辈你好~ 今天看到最新一篇有关读书的推文发现同是HC老乡,斗胆向您请教一些问题,有点…

Django之项目搭建和配置总结(一)

安装和创建虚拟环境 参考:linux系统下Python虚拟环境的安装和使用安装Django包 先进入虚拟环境,在联网下执行:pip install django1.8.7 1.8.7表示django的版本,如果不指定,会默认安装最新版的django。包会被安装到/usr…

java长连接例子_java实现长连接

();public Client(String serverIp, int port) {this.serverIpserverIp;this.portport;}public void start() throws UnknownHostException, IOException {if(running)return;socket new Socket(serverIp,port);System.out.println("本地端口:"socket.ge…

怎么把一个bool数组转成char?

这个是在知乎上看到的问题,分享给大家,如果有不同的答案,欢迎评论回复。知乎惯例谢邀人在厕所,刚刚蹲下因为最近都流行长文,但是作为日更而且更喜欢表达自己看法的我,力争文章是自己想发的,而且…

日本語勉強資源

ウェブ頁注音 http://www.hiragana.jp/ (看新闻学背单词容易多了)通訳 http://www.excite.co.jp (单词/句子/网页翻译)

mysql的高阶用法_MySQL的经典用法(十四)-高级优化

mysql的经典用法(十四)----高级优化基于/application/search/mysql/mysql-5.5.28/support-files/my-innodb-heavy-4G.cnf二次优化【删除--如果不使用主从同步】注释,去除无用日志文件# log-binmysql-bin# binlog_formatmixed【修改链接】# 最大链接值从100增加到512…

Kotlin——初级篇(二):变量、常量、注释

在Kotlin中的变量、常量以及注释多多少少和Java语言是有着不同之处的。不管是变量、常量的定义方式,还是注释的使用。下面详细的介绍Kotlin中的变量、常量、注释的使用。以及和Java的对比。 如果您还没有搭建环境和不了解Kotlin的,请看我的上一篇博文Kot…

java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...

一、调用存储过程方式一:/*** 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中);* List.get(0) hsTable; //存放分页信息(tableName/token/pageNo/pageSize/recordsCount/pagesCount)--hsTable.get(key)* Lis…

今天研究了一下关于Asp.net文件上传时的内存消耗问题

晕啊,写了半天,突然间所有的格式都没了,我不得不在写字板中重新排版,DuDu哥,你还是快捷键都去掉吧。 简单研究了一下如何解决Asp.net连续上传文件时对内存占用越来越多的问题。但目前只能解决一部份问题,要…

Linux系统编程-管道入门

晚上好,继续记录我的学习心得。当你厌倦了自己的目标时,怎样继续保持专注?误区:成功人士说的都是自己如何“满怀热情”去努力实现他们的目标。不管是在商业、体育还是艺术界,我们听到的都是“一切都归结于激情”或者“…

JavaScript 基础,登录前端验证

1、<script></script>的三种用法&#xff1a; 1.放在<body>中 2.放在<head>中 3.放在外部JS文件中 2、三种输出数据的方式&#xff1a; 1.使用 document.write() 方法将内容写到 HTML 文档中。 2.使用 window.alert() 弹出警告框。 3.使用 innerHTML 写…

Meta的用法

----------------------------------------------- ? 这就是meta标签的典型运用。meta标签有多少参数&#xff0c;有什么作用&#xff0c;为什么我们要特别重视它呢&#xff1f;让我们一起来发掘meta标签的奥妙! ? 根据HTML语言标准注释&#xff1a;meta标签是对网站发展非常…

iOS10 打开APP设置界面和WIFI界面

在iOS10以上&#xff0c;权限这块有了一些变化 首先在info的URL Types 添加 prefs 1、打开APP设置界面 //打开设置let url:NSURL NSURL(string: UIApplicationOpenSettingsURLString)!if UIApplication.shared.canOpenURL(url as URL){ UIApplication.shared.openURL(url as…

一种简单、实用的测量程序运行时间的方法

前言 平时我们可能很少去关注程序运行的时间&#xff0c;但是在一些情况下可能需要对程序进行一个整体的复盘、优化。那么&#xff0c;程序运行的时间就是一个可以考虑的方面&#xff0c;可以测一下某些代码块、函数、算法的运行时间&#xff0c;然后整体考虑看看有没有必要进行…