data-structures數據結構入門


備註

本節概述了數據結構是什麼,以及開發人員可能想要使用它的原因。

它還應該提到數據結構中的任何大型主題,並鏈接到相關主題。由於數據結構的文檔是新的,您可能需要創建這些相關主題的初始版本。

數組:簡單的數據結構

陣列數據結構用於在連續的內存塊中存儲類似的對象(或數據值)。數組數據結構具有固定大小,它確定可以存儲在其中的數據值的數量。


數組:C ++方式

在C ++編程語言中,我們可以聲明一個靜態數組如下

int arrayName[100];
 

這裡我們聲明了一個名為“arrayName”的數組,它可以存儲多達100個值,所有這些值都是相同的類型,即整數。

現在,我們將討論此數據結構的一些優點和缺點

  1. 我們可以在Constant Time中訪問存儲在Array中的Data Values,即時間複雜度為O(1) 。因此,如果我們想要訪問存儲在第i個位置的數據值,我們不需要從起始位置開始並向上移動到第i個位置,但是我們可以直接跳到第i個位置,從而節省計算時間。
  2. 在數組中間插入元素不是一項有效的任務。假設我們想在第i個位置的數組中添加一個新元素,那麼我們需要先在第(i-th)和第(i + 1)個位置移動所有元素,以便為新元素創建空間。示例: 1 4 2 0 是一個包含4個元素的數組,現在我們要在第2個位置插入3,然後我們需要進一步移動4,2和0一個位置以創建3的空間。
  1 3 4 2 0
 
  1. 與插入元素類似,從數組中第i個位置刪除元素也是無效的,因為我們需要將刪除元素前面的所有元素移動1個塊以填充由刪除的空閒空間元件。

這些是數組的3個簡單特徵,在這裡您可能認為數組不是一種有效的數據結構,但在實踐中,數組的優勢可能會超出它的優勢。這在很大程度上取決於您想要服務的目的,您可能不希望像訪問它們那樣經常插入或刪除元素,在這種情況下,數組是絕對完美的數據結構。

引入此數據結構的唯一目的是確保您不會根據優勢和劣勢的數量選擇數據結構,但您應該始終嘗試通過考慮您的問題來分析數據結構的重要性,例如,如果與插入或刪除數據值相比,您將花費大量時間訪問數據值,那麼在這種情況下,我們需要更多地利用優勢而不是劣勢。

數據結構簡介

數據結構是一種組織和存儲信息的方式。

讓“你好,世界!” string是我們需要組織和存儲在字節可尋址內存中的信息。

每個ASCII字符需要7位存儲空間。大多數係統為每個字符保留8位(1字節),因此“Hello,World!”中的每個字符都是如此。存儲在一個字節大小的單元存儲器中,一個接一個地連續存儲。

我們需要對字符串進行單一引用,即使它跨越多個內存地址,因此我們使用字符串中第一個字符的地址“H”。可以使用零索引字符在“H”的地址和該字符的索引處訪問每個其他字符。

我們想打印我們的字符串,“Hello,World!”我們知道它在內存中的地址,我們提供給打印功能,但打印功能如何知道停止打印連續的內存位置?一種常見的方法是將空字符'\ 0'附加到字符串。當print函數遇到null字符時,它知道它已到達字符串的末尾。

我們已經定義了一種組織和存儲字符串的方法,即數據結構!這個非常簡單的數據結構是一個以null結尾的字符數組,這是組織和存儲字符串的一種方法。