常用多維數據結構有哪些?
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)的存儲位置可以找到該記錄,這樣就可以不用進行比較操作而直接取得所查記錄。