更新時間:2020-12-23 17:35:42 來源:動力節點 瀏覽5748次
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合,它研究的是數據的邏輯結構和數據的物理結構以及它們之間的相互關系,并對這種結構定義相適應的運算,設計出相應的算法,并確保經過這些運算以后所得到的新結構仍保持原來的結構類型。數據結構有很多種,一般來說,8種常用數據結構分別為:數組,棧,鏈表,隊列,樹,圖,堆,散列表等,如圖所示:
下面詳細的介紹一下8個常用數據結構。
1.數組(Array)
數組是一種聚合數據類型,它是將具有相同類型的若干變量有序地組織在一起的集合。數組可以說是最基本的數據結構,在各種編程語言中都有對應。一個數組可以分解為多個數組元素,按照數據元素的類型,數組可以分為整型數組、字符型數組、浮點型數組、指針數組和結構數組等。數組還可以有一維、二維以及多維等表現形式。
2.棧( Stack)
棧是一種特殊的線性表,它只能在一個表的一個固定端進行數據結點的插入和刪除操作。棧按照后進先出的原則來存儲數據,也就是說,先插入的數據將被壓入棧底,最后插入的數據在棧頂,讀出數據時,從棧頂開始逐個讀出。棧在匯編語言程序中,經常用于重要數據的現場保護。棧中沒有數據時,稱為空棧。
3.隊列(Queue)
隊列和棧類似,也是一種特殊的線性表。和棧不同的是,隊列只允許在表的一端進行插入操作,而在另一端進行刪除操作。一般來說,進行插入操作的一端稱為隊尾,進行刪除操作的一端稱為隊頭。隊列中沒有元素時,稱為空隊列。
4.鏈表( Linked List)
鏈表是一種數據元素按照鏈式存儲結構進行存儲的數據結構,這種存儲結構具有在物理上存在非連續的特點。鏈表由一系列數據結點構成,每個數據結點包括數據域和指針域兩部分。其中,指針域保存了數據結構中下一個元素存放的地址。鏈表結構中數據元素的邏輯順序是通過鏈表中的指針鏈接次序來實現的。
5.樹( Tree)
樹是典型的非線性結構,它是包括,2個結點的有窮集合K。在樹結構中,有且僅有一個根結點,該結點沒有前驅結點。在樹結構中的其他結點都有且僅有一個前驅結點,而且可以有兩個后繼結點,m≥0。
6.圖(Graph)
圖是另一種非線性數據結構。在圖結構中,數據結點一般稱為頂點,而邊是頂點的有序偶對。如果兩個頂點之間存在一條邊,那么就表示這兩個頂點具有相鄰關系。
7.堆(Heap)
堆是一種特殊的樹形數據結構,一般討論的堆都是二叉堆。堆的特點是根結點的值是所有結點中最小的或者最大的,并且根結點的兩個子樹也是一個堆結構。
8.散列表(Hash)
散列表源自于散列函數(Hash function),其思想是如果在結構中存在關鍵字和T相等的記錄,那么必定在F(T)的存儲位置可以找到該記錄,這樣就可以不用進行比較操作而直接取得所查記錄。
當然,數據結構本身也不是一成不變的,隨著計算機科學的飛速發展,數據結構也隨之發展,衍生出了新的數據結構。但是,我們只要掌握了數據結構本身的規律,萬變不離其宗,數據結構也會成為我們解決問題的利刃。在本站的數據結構和算法教程中,對這8種常見數據結構都有詳細的講解,想深入學習的小伙伴千萬不要錯過哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習