鏈表。。。

目錄

5.1 鏈表的結點

5.2 插入

5.3 鏈表長度

5.4 查找

5.5 指定位置刪除

5.6 代碼


5.1 鏈表的結點

一個結點包括:值和指向下一個結點的指針。

package com.qcby.鏈表;public class Node {int value;Node next;public Node(int val){value=val;}@Overridepublic String toString() {return "Node [value="+value+",next="+next+"]";}}

5.2 插入

分為尾插和頭插。

尾插和頭插法都分為兩種情況。

5.3 鏈表長度

遍歷數組,記錄節點個數即可。

5.4 查找

遍歷鏈表,如果某一個節點的值等于要查找的值,則查找成功;否則查找失敗。

5.5 指定位置刪除

首先判斷刪除的位置合不合法。如果不合法,則無法刪除。

合法,則刪除分為兩種情況:第一種是刪除頭結點;第2種是刪除其他位置。

如果是刪頭結點,直接讓head等于head.next。如果是其他,則先遍歷鏈表(用到pre 和 index,pre 是index的前一個結點),找到要刪除的位置,令pre.next=index.next。

5.6 代碼

package com.qcby.鏈表;public class LinkList {Node head=null;//尾插法public void insert(int value) {Node node=new Node(value);if(head==null) {head=node;return;}//找到最后Node index=head;while(index.next!=null) {index=index.next;}//插入index.next=node;}//頭插法public void insertHead(int value) {Node node=new Node(value);if(head==null) {head=node;return;}node.next=head;head=node;}//鏈表長度public int getLen() {Node index=head;int count=0;while(index!=null) {count++;index=index.next;}return count;}//鏈表中查找數據public int search(int num) {Node index=head;int count=0;while(index!=null) {if(index.value==num) {return count;}else {index=index.next;}count++;}return -1;}//指定位置刪除public void delete(int position) {//合法if(position<0||position>=getLen()) {System.out.println("刪除位置不合法!");}//刪頭if(position==0) {head=head.next;}else {//先找到位置int count=0;Node index=head;Node pre=null;while(count!=position) {pre=index;index=index.next;count++;}pre.next=index.next;}}@Overridepublic String toString() {String res="[ ";Node index=head;while(index!=null) {res=res+index.value+" ";index=index.next;}res=res+"]";return res;}}
package com.qcby.鏈表;public class Test {public static void main(String[] args) {
//		Node node1=new Node(9);
//		Node node2=new Node(5);
//		Node node3=new Node(90);
//		Node node4=new Node(0);
//		node1.next=node2;
//		node2.next=node3;
//		node3.next=node4;
//		System.out.println(node1);LinkList list=new LinkList();list.insertHead(0);list.insertHead(10);list.insertHead(2);list.insertHead(8);list.insertHead(6);System.out.println(list);System.out.println(list.getLen());System.out.println(list.search(100));System.out.println(list.search(2));list.delete(2);System.out.println(list);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93547.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93547.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93547.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

私人AI搜索新突破:3步本地部署Dify+Ollama+QwQ,搜索能力MAX

1.安裝Docker容器 本地部署Dify要先安裝Docker桌面版&#xff0c;跟Ollama一樣簡單&#xff0c;也是去官網下載對應版本文件&#xff0c;直接安裝就OK。 2&#xff1a;安裝Dify 安裝 Dify 簡單的方式就是git clone&#xff0c;復制其github地址github.com/langgenius/dify&am…

(2-10-1)MyBatis的基礎與基本使用

目錄 0.前置小節 1. MyBatis 框架介紹 1.1 軟件開發中的框架 1.2 使用框架的好處 1.3 SSM 開發框架 1.4 什么是 MyBatis 1.5 MyBatis 的開發流程 2. MyBatis 的開發流程 2.0 MyBatis的工作流程 2.1 引入 MyBatis 依賴 00.base(目錄、pom、單元測試、Junit4) 01.Cal…

StarRocks集群部署

Starrocks 是一款基于 MPP 架構的高性能實時分析型數據庫&#xff0c;專為 OLAP&#xff08;聯機分析處理&#xff09;場景 設計&#xff0c;尤其擅長處理海量數據的實時分析、復雜查詢和多維統計。 硬件 CPU&#xff1a;StarRocks依靠AVX2指令集充分發揮其矢量化能力。因此&am…

【CPP】自己實現一個CPP小工具demo,可以擴展其他選項

自己寫CPP腳本小工具1. 思路描述2. 代碼實現2.1 代碼文件CppTool.cpp2.2 CMakeLists.txt3. 工具示例3.1 幫助信息3.2 工具用法3.3 實際使用1. 思路描述 實現一個簡單的命令行工具。內容包括&#xff1a; 命令幫助信息參數檢查&#xff0c;參數解析等功能。執行其他命令。將指…

如何使用嵌入模型創建本地知識庫Demo

為data目錄下的txt文檔用阿里百煉的文本嵌入模型創建一個本地知識庫import os from llama_index.core import ,Settings, SimpleDirectoryReader, VectorStoreIndex from llama_index.core.node_parser import SentenceSplitter from llama_index.llms.dashscope import DashSc…

SpringBoot 整合 Langchain4j:系統提示詞與用戶提示詞實戰詳解

> 掌握提示詞工程的核心技巧,讓你的AI應用效果提升300%! **真實痛點**:為什么同樣的模型,別人的應用精準專業,而你的卻答非所問?關鍵在于提示詞工程!本文將揭秘如何通過系統提示詞與用戶提示詞的巧妙配合,打造專業級AI應用。 --- ### 一、Langchain4j 核心概念…

Sklearn 機器學習 郵件文本分類 加載郵件數據

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】 Sklearn 機器學習 郵件文本分類 - 加載郵件數據 在自然語言處理(NLP)中,郵件文本分…

騰訊云開發小程序工具箱使用心得

一、核心優勢與使用體驗 作為首批使用騰訊云開發&#xff08;CloudBase&#xff09;工具箱的開發者&#xff0c;我深刻感受到其通過CloudBase AI與MCP服務重構開發范式的創新價值。結合微信小程序開發場景&#xff0c;該平臺在以下維度表現突出&#xff1a; 1. AI驅動的全棧開發…

機械加工元件——工業精密制造的璀璨明珠

在工業制造的宏大畫卷中&#xff0c;機械加工元件猶如璀璨的明珠&#xff0c;以其卓越的性能和精湛的工藝&#xff0c;為各行各業的發展注入了源源不斷的動力。它們雖形態各異&#xff0c;功能不同&#xff0c;卻在無數產品中攜手合作&#xff0c;展現出科技與柔性的完美融合。…

【八股】Redis-中小廠精要八股

Redis 基礎 redis為什么這么快 (高) [!NOTE] 最首要的是Redis是純內存操作, 比磁盤要快3個數量級同時在與內存操作中采用了非阻塞I/O多路復用機制來提高并發量并且基于Redis的IO密集型&#xff0c;采用單線程操作, 免去了線程切換開銷Redis 內置了多種優化過后的數據結構實現…

C++字符串(string)操作解析:從基礎到進階

1. 字符串基礎&#xff1a;大小與容量cppvoid test1() {string s1("Hello World");cout << "size : " << s1.size() << endl; // 輸出字符串長度cout << "capacity " << s1.capacity() << endl; // 輸出字…

蘑兔音樂:音樂創作的魔法棒

在這個充滿創意與可能的時代&#xff0c;人人都有一顆渴望表達音樂之心。但傳統音樂創作&#xff0c;復雜的樂理、昂貴的設備&#xff0c;總讓人望而卻步。別擔心&#xff01;蘑兔 AI 音樂強勢來襲&#xff0c;它就是那個能讓音樂小白也能搞創作的神奇工具&#xff01;?靈感模…

從傳統到智能:RFID 技術如何重構壓縮機生產線

從傳統到智能&#xff1a;RFID 技術如何重構壓縮機生產線在工業 4.0 與中國制造 2025 戰略的深入推進下&#xff0c;作為空調核心部件的壓縮機制造業正加速從傳統生產模式向智能化轉型。壓縮機生產以高精度、大批量為顯著特點&#xff0c;長期面臨生產數據斷層、柔性化不足、質…

HTML5二十四節氣網站源碼

一. 二十四節氣文化主題網站概述 本網站以中國傳統文化瑰寶“二十四節氣”為核心&#xff0c;通過現代Web技術打造沉浸式文化體驗平臺&#xff0c;融合視覺美學與交互創新&#xff0c;全方位展現節氣的自然規律與人文內涵。網站采用響應式布局設計&#xff0c;適配多終端設備&…

微服務架構實戰指南:從單體應用到云原生的蛻變之路

&#x1f31f; Hello&#xff0c;我是蔣星熠Jaxonic&#xff01; &#x1f308; 在浩瀚無垠的技術宇宙中&#xff0c;我是一名執著的星際旅人&#xff0c;用代碼繪制探索的軌跡。 &#x1f680; 每一個算法都是我點燃的推進器&#xff0c;每一行代碼都是我航行的星圖。 &#x…

超越Transformer:大模型架構創新的深度探索

引言&#xff1a; 以GPT、Claude、Gemini等為代表的大語言模型&#xff08;LLMs&#xff09;已成為人工智能領域的核心驅動力。它們基于Transformer架構構建&#xff0c;在理解和生成人類語言方面展現出驚人的能力。然而&#xff0c;隨著模型規模指數級增長和對更長上下文、更高…

完整設計 之 智能合約系統:主題約定、代理協議和智能合約 (臨時命名)--騰訊元寶答問

本文要點和任務整體設計&#xff08;符號學 &#xff1a;為了詮釋學實踐運用 形。而上理論&#xff0c;將自己作為 兩者結合的 條帶 &#xff09;&#xff0c;包括三部分&#xff1a;內核&#xff08;設置-組態-主動把握的操作&#xff09;是認知學&#xff08;語義&#xff09…

同創物流學習記錄2·電車光電

燈在閃爍&#xff0c;照到你前面的東西了&#xff0c;它可以照前面&#xff0c;可以照6米遠。你那個電車前面五六米感應到東西了&#xff0c;它就會減速&#xff0c;然后到3米的樣子&#xff0c;它會再減速。然后再到1米2的樣子&#xff0c;它就會停下來。電車前側光電這個區域…

linux I2C核心、總線與設備驅動

一、 linux I2C體系結構linux的I2C體系結構分為3個組成部分1&#xff09;I2C核心I2C核心提供了I2C總線驅動與設備驅動的注冊、注銷方法&#xff0c;I2C通信方法&#xff08;即Algorithm&#xff09;上層的與具體適配器無關的代碼及其探測設備、檢測設備地址的上層代碼等…

跑實驗記錄

1.下載git&#xff08;base) mqmq-MS-7A59:~/桌面$ sudo apt update && sudo apt install git2.克隆項目&#xff08;base) mqmq-MS-7A59:~/桌面$ sudo apt update && sudo apt install git3.canda創建環境(base) mqmq-MS-7A59:~$ conda create -n HyTE python…