鏈表補充及鏈表和數組的區別

来源:http://www.cnblogs.com/joyeehe/archive/2017/11/19/7859546.html
-Advertisement-
Play Games

初稿:2017-11-19 13:05:57 4種鏈表 鏈表和數組的區別 數組初始容量一旦確定,不能再改變,適合要處理的數據量已知的情況。 未知要處理的數據量使用數組,可能造成空間浪費或容量不足,雖然有動態數組可擴容,但是頻繁擴容會使系統產生很大的開銷。 鏈表容量不限,長度與元素個數相同,但是需要額 ...


初稿:2017-11-19 13:05:57

4種鏈表

  1. 不迴圈單鏈表:加頭結點,使得插入刪除操作相同,不必特別處理插入或刪除的是第一個位置的情況。
  2. 迴圈單鏈表:引用參數是最後一個結點的指針pTail,這樣既能迅速找到首結點pHead = pTail->next,也能迅速獲取表尾。
  3. 不迴圈雙向鏈表:p所指結點後插入結點q.  q->next = p->next; p->next->pre = q; p->next = q; q->pre = p;  
  4. 迴圈雙向鏈表:引用參數首或尾都可。

鏈表和數組的區別

數組初始容量一旦確定,不能再改變,適合要處理的數據量已知的情況。

未知要處理的數據量使用數組,可能造成空間浪費或容量不足,雖然有動態數組可擴容,但是頻繁擴容會使系統產生很大的開銷。

鏈表容量不限,長度與元素個數相同,但是需要額外的空間存放下一元素的地址,空間使用率不如數組。

按index查找,數組存取元素時間複雜度是O(1),鏈表是O(n)

鏈表插入和刪除時間複雜度是O(1),數組是O(n)

查找值是value的某個元素,速度則相同。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 返回總目錄 6.5Introduce Explaining Variable(引用解釋性變數) 概要 你有一個複雜的表達式。 將該複雜表達式(或其中一部分)的結果放進一個臨時變數,以此變數名稱來解釋表達式用途。 動機 有時候你會遇到一系列複雜的表達式連續運算的時候,這個時候你可能根本招架不住如此長或 ...
  • 上一篇簡單介紹了日誌的使用方法,也僅僅是用來做下學習,更何況只能在console輸出。 NLog已是日誌庫的一員大佬,使用也簡單方便,本文介紹的環境是居於.NET CORE 2.0 ,目前的版本也只有beta版。 一、安裝和配置 1.安裝 命令如下 2.創建配置文件 在web項目根目錄下,創建配置文 ...
  • 1、前言 surging內部使用的是高性能RPC遠程服務調用,如果用json.net序列化肯定性能上達不到最優,所以後面擴展了protobuf,messagepack序列化組件,以支持RPC二進位傳輸. 在這裡需要感謝白紙無字Zonciu,新增了messagepack序列化,讓surging 性能上 ...
  • 1、 在表單需要提交Html的頁面頭部加入 ValidateRequest="false" 2、webConfig 的 <system.web> 節點下配置 ...
  • 前言 c#做winform程式要求生成並列印Excel報告,為了不安裝Office相應組件,我選擇了NPOI來生成Excel報告,用winform的PrintDocument控制項來觸發列印操作,而難點在於如何將excel轉換成Graphics對象,在NPOI中我只找到了excel列印的設置(如橫向/ ...
  • 關於Oracle中使用Entity Framework 6.x Code-First方式開發,請參考博客(菩提樹下的楊過)https://www.cnblogs.com/yjmyzz/p/how-to-use-code-first-in-oracle-with-entity-framework-6. ...
  • 一、背景介紹 環境的局限性: 用戶在使用XX客戶端的時候,必須每臺電腦都安裝列印組件,同時由於XX客戶端使用的是 websocket進行通訊,這就必須限制用戶的電腦瀏覽器必須是IE10.0+以上版本,這種局限性在我們公司倉庫部署實施和用戶體驗極其不好。因此我們必須提供一種解決方案,解決我們業務痛點。 ...
  • 返回總目錄 6.4Replace Temp with Query(以查詢取代臨時變數) 概要 你的程式以一個臨時變數保存某一表達式的運算結果。 將這個表達式提煉到一個獨立函數中。將這個臨時變數的所有引用點替換為對函數的調用。此後,新函數就可以被其他函數使用。 動機 臨時變數的問題在於:只在當前函數可 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...