MyLinkedList

/*** 节点类* @author JP* */
class Node {Object value;//节点元素值Node pre;//上一个节点Node next;//下一个节点public Node(Object value) {this.value = value;}
}/*** 链表类* @author JP**/
public class MyLinkedList {Node cur;//目前指向的节点Node head;//头结点Node end;//尾节点int size = 0;/*** 实例化头节点和尾节点*/public MyLinkedList() {head = new Node("head");end = new Node("end");//设置头尾相连head.next = end;end.pre = head;}/*** 增加操作* @param value*/public void add(Object value) {//判断当前插入的元素是否是第一个元素if (cur == null) {cur = new Node(value);head.next = cur;cur.pre = head;} else {Node node = new Node(value);cur.next = node;node.pre = cur;cur = node;//将cur元素设置为当前插入的节点}cur.next = end;end.pre = cur;size++;}/*** 在指定位置插入元素,第一个元素的下标为0* @param index* @param value* @throws Exception*/public void add(int index, Object value) throws Exception {//判断当前要插入的元素是否为链表的最后一个元素if (index == size) {this.add(value);} else {Node tmp = this.get(index);//当前index位置所对应的节点Node node = new Node(value);//当前要插入的节点tmp.pre.next = node;node.pre = tmp.pre;node.next = tmp;tmp.pre = node;}size++;}/*** 删除指定位置的元素,第一个元素的下标为0* @param index* @throws Exception */public void remove(int index) throws Exception {Node tmp = this.get(index);//当前index位置所对应的节点tmp.pre.next = tmp.next;tmp.next.pre = tmp.pre;size--;}/*** 获取指定位置的节点元素* @param index* @return* @throws Exception */public Node get(int index) throws Exception {if (index < 0 || index >= size) {throw new Exception("数组下标越界!");}Node node = head.next;for (int i = 1; i <= index; i++) {node = node.next;//迭代为下一个节点}return node;}/*** 将链表转化成数组* @return*/public Object[] toArray() {Object[] arr = new Object[size];Node node = head.next;for (int i = 0; i < arr.length; i++) {arr[i] = node.value;node = node.next;//迭代为下一个节点}return arr;}public static void main(String[] args) throws Exception {MyLinkedList list = new MyLinkedList();list.add(1);list.add(2);list.add(3);list.add(4);//list.remove(4);//list.add(4,"a");Object[] arr = list.toArray();for (Object obj : arr) {System.out.println(obj);}}
}

  

转载于:https://www.cnblogs.com/syjp/p/11082955.html

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

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

相关文章

linux开启ping服务,Linux 云服务器禁止和开启Ping

原标题&#xff1a;Linux 云服务器禁止和开启Ping在使用Linux服务器的时候&#xff0c;一般系统默认是开启ping的&#xff0c;比如我们可以ping测试网络的延迟质量。当然也有部分服务商是可以通过安全组设置禁止ping的&#xff0c;我们可以设置安全组对应项目开启或禁止ping&am…

leetcode1432. 改变一个整数能得到的最大差值(贪心)

给你一个整数 num 。你可以对它进行如下步骤恰好 两次 &#xff1a; 选择一个数字 x (0 < x < 9). 选择另一个数字 y (0 < y < 9) 。数字 y 可以等于 x 。 将 num 中所有出现 x 的数位都用 y 替换。 得到的新的整数 不能 有前导 0 &#xff0c;得到的新整数也 不能…

oracle之 Oracle归档日志管理

在Oracle中&#xff0c;数据一般是存放在数据文件中&#xff0c;不过数据库与Oracle最大的区别之一就是数据库可以在数据出错的时候进行恢复。这个也就是我们常见的Oracle中的重做日志(REDO FILE)的功能了。在重做日志分成2部分&#xff0c;一个是在线重做日志文件&#xff0c;…

linux 安装rmp服务,Linux LAMP服务的rpm包安装与配置

1.apache(httpd) 所在光盘装包apr-xxx.rpm (二)postgresql-libs-xxx.rpm (二)apr-util-xxx.rpm (二)http-xxx.rpm (二)2.mysql (二)装包perl-DBI-xxx.rpm (二)mysql-xxx.rpm (二)3.mysqlserver装包perl-DBD-mysql-xxx.rpm (二)mysql-server-xxx.rpm (二)4.PHP装包gmp-xxx.rpm (…

红外感应模块+蜂鸣器实现简易报警(转)

拿到了一个红外感应模块HC-SR501&#xff0c;于是就用它和蜂鸣器简单试验了下。主要是试验一下这个红外感应模块的功能&#xff0c;所以代码也写的很随便啦&#xff0c;逻辑上也欠考虑。实现基本功能&#xff1a;运行脚本后&#xff0c;感应模块每隔一定时间检测&#xff0c;如…

leetcode51. N 皇后(回溯算法)

n 皇后问题研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n&#xff0c;返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案&#xff0c;该方案…

ubuntu下python的错误

ubuntu python 2.7 python test.py *.py permission denied chmod x *.py 转载于:https://www.cnblogs.com/gisalameda/p/11086624.html

kotlin半生对象_如何在Kotlin中使用Actor实现对象池

kotlin半生对象by osha1由osha1 如何在Kotlin中使用Actor实现对象池 (How to implement an Object-Pool with an Actor in Kotlin) We use object pool in jasync-sql to manage connections to the database. In this post, I will share how it is done in a performant, lo…

linux运行apktool签名,解决Linux中使用ApkTool遇到问题

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;遇到问题在Linux中使用IntelliDroid工具时&#xff0c;按要求配置好环境之后&#xff0c;始终无法成功运行该工具内部的ApkTool&#xff0c;导致后续的安卓静态分析…

python 脚本学习(二)

task1&#xff1a; 在一个文件中&#xff0c;单词之间使用空格、分号、逗号或者句号分隔&#xff0c;请提取全部单词。 代码实例&#xff1a; 1234567891011#!/usr/local/python27/bin/python2.7import sys import re words [] with open(sys.argv[1]) as f: for line in f: #…

2.2 Consumer API官网剖析(博主推荐)

不多说&#xff0c;直接上干货&#xff01; 一切来源于官网 http://kafka.apache.org/documentation/ 2.2 Consumer API 2.2、消费者API 随着0.9.0版本&#xff0c;我们已经增加了一个新的Java消费者替换我们现有的基于zookeeper的高级和低级消费者。这个客户端还是测试版的质量…

leetcode1053. 交换一次的先前排列(贪心算法)

给你一个正整数的数组 A&#xff08;其中的元素不一定完全不同&#xff09;&#xff0c;请你返回可在 一次交换&#xff08;交换两数字 A[i] 和 A[j] 的位置&#xff09;后得到的、按字典序排列小于 A 的最大可能排列。 如果无法这么操作&#xff0c;就请返回原数组。 示例 1&a…

mybatis-generator-gui如何打包成exe

快速阅读&#xff1a; ​ 用wix和inno setup把mybatis-generator-gui 打包成exe和安装文件。 以后使用的时候方便&#xff0c;不用每次打开eclipse运行。 使用inno setup 5 和wix 3.11 基于mybatis generator开发一款界面工具, 非常容易及快速生成Mybatis的Java POJO文件及数据…

分步表单如何实现 html_HTML表单入门的分步指南

分步表单如何实现 htmlby Abhishek Jakhar通过阿比舍克贾卡(Abhishek Jakhar) HTML表单入门的分步指南 (A step-by-step guide to getting started with HTML forms) 总览 (Overview) HTML forms are required when you want to collect some data from the person who visits…

linux网络服务偶尔失效,判断linux下的网络服务是否正常启动

# 自动判断samba,http,named,dovecot,tomcat等服务是否正常启动##作者&#xff1a;胡昌文#时间&#xff1a;2008-09-28#MSN&#xff1a;[email]hucw_rhcehotmail.com[/email]###!/bin/shSAMBA1netstat -nutlp | grep :137 | grep smbdSAMBA2netstat -nutlp | grep :138 | grep …

leetcode809. 情感丰富的文字

有时候人们会用重复写一些字母来表示额外的感受&#xff0c;比如 “hello” -> “heeellooo”, “hi” -> “hiii”。我们将相邻字母都相同的一串字符定义为相同字母组&#xff0c;例如&#xff1a;“h”, “eee”, “ll”, “ooo”。 对于一个给定的字符串 S &#xff…

NeHe OpenGL教程 第三十课:碰撞检测

转自【翻译】NeHe OpenGL 教程 前言 声明&#xff0c;此 NeHe OpenGL教程系列文章由51博客yarin翻译&#xff08;2010-08-19&#xff09;&#xff0c;本博客为转载并稍加整理与修改。对NeHe的OpenGL管线教程的编写&#xff0c;以及yarn的翻译整理表示感谢。 NeHe OpenGL第三十课…

andorid手机电脑操作

之前一直使用androidscreencast在pc上对手机进行操作,好久都没用了,前些天再次用的时候,提演示样例如以下: 决定还是自己写一个吧,由于7月份要做一个小分享,打算讲一些android的东西,须要在电脑上显示手机这边的画面,提供一定的操作. 花了一点时间做好了,给大家截一个图,代码放…

struct.error: cannot convert argument to integer解决办法

更新Python包转载于:https://www.cnblogs.com/long5683/p/11086768.html

sphinx_Sphinx之谜:如何轻松地编写代码

sphinx为什么我在这里&#xff1f; (Why Am I Here?) You, the reader, are here because you wrote some awesome tool in Python, and you want to make it accessible and easy to use.读者之所以在这里&#xff0c;是因为您使用Python编写了一些很棒的工具&#xff0c;并且…