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.pswp.cn/news/393063.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393063.shtml
英文地址,請注明出處:http://en.pswp.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;并且…