『壹』 數據結構是什麼啊
數據結構是指相互之間存在著一種或多種關系的數據元素的集合和該集合中數據元素之間的關系組成。記為:數據結構Data_Structure=(D,R)其中D是數據元素的集合,R是該集合中所有元素之間的關系的有限集合。
數據結構是在整個計算機科學與技術領域上廣泛被使用的術語。它用來反映一個數據的內部構成,即一個數據由那些成分數據構成,以什麼方式構成,呈什麼結構。
數據結構有邏輯上的數據結構和物理上的數據結構之分。邏輯上的數據結構反映成分數據之間的邏輯關系,而物理上的數據結構反映成分數據在計算機內部的存儲安排。數據結構是數據存在的形式。
數據結構是信息的一種組織方式,其目的是為了提高演算法的效率,它通常與一組演算法的集合相對應,通過這組演算法集合可以對數據結構中的數據進行某種操作。數據結構主要研究數據的各種邏輯結構和存儲結構,以及對數據的各種操作。
因此,主要有三個方面的內容:數據的邏輯結構;數據的物理存儲結構;對數據的操作(或演算法)。通常,演算法的設計取決於數據的邏輯結構,演算法的實現取決於數據的物理存儲結構。
(1)常見的數據結構有哪些擴展閱讀:
一、數據的邏輯結構:指反映數據元素之間的邏輯關系的數據結構,其中的邏輯關系是指數據元素之間的前後件關系,而與他們在計算機中的存儲位置無關。
邏輯結構包括:
1、集合:數據結構中的元素之間除了「同屬一個集合」 的相互關系外,別無其他關系;
2、線性結構:數據結構中的元素存在一對一的相互關系;
3、樹形結構:數據結構中的元素存在一對多的相互關系;
4、圖形結構:數據結構中的元素存在多對多的相互關系。
二、數據的物理結構:指數據的邏輯結構在計算機存儲空間的存放形式。
數據的物理結構是數據結構在計算機中的表示(又稱映像),它包括數據元素的機內表示和關系的機內表示。
由於具體實現的方法有順序、鏈接、索引、散列等多種,所以,一種數據結構可表示成一種或多種存儲結構。
數據元素的機內表示(映像方法): 用二進制位(bit)的位串表示數據元素。通常稱這種位串為節點(node)。
當數據元素有若干個數據項組成時,位串中與個數據項對應的子位串稱為數據域(data field)。因此,節點是數據元素的機內表示(或機內映像)。
關系的機內表示(映像方法):數據元素之間的關系的機內表示可以分為順序映像和非順序映像,常用兩種存儲結構:順序存儲結構和鏈式存儲結構。
順序映像藉助元素在存儲器中的相對位置來表示數據元素之間的邏輯關系。非順序映像藉助指示元素存儲位置的指針(pointer)來表示數據元素之間的邏輯關系。
三、結構演算法
演算法的設計取決於數據(邏輯)結構,而演算法的實現依賴於採用的存儲結構。數據的存儲結構實質上是它的邏輯結構在計算機存儲器中的實現,為了全面的反映一個數據的邏輯結構,它在存儲器中的映象包括兩方面內容,即數據元素之間的信息和數據元素之間的關系。
不同數據結構有其相應的若干運算。數據的運算是在數據的邏輯結構上定義的操作演算法,如檢索、插入、刪除、更新和排序等。
『貳』 數據結構都有哪些分類呢
集合。2.線性結構。3.樹形結構。4.圖狀結構;
1.集合
樹形結構是一層次的嵌套結構。 一個樹形結構的外層和內層有相似的結構, 所以這種結構多可以遞歸的表示。經典數據結構中的各種樹狀圖是一種典型的樹形結構:一顆樹可以簡單的表示為根, 左子樹, 右子樹。 左子樹和右子樹又有自己的子樹。
4.圖狀結構
圖狀結構,簡稱「圖」,是一種復雜的數據結構。圖狀結構中,每個結點的前驅結點數和後續結點數可以任意多個。數據元素間的關系是任意的。其他數據結構(如樹、線性表等)都有明確的條件限制,而圖形結構中任意兩個數據元素間均可相關聯。
『叄』 常用的數據結構有哪些
數據元素相互之間的關系稱為結構。有四類基本結構:集合、線性結構、樹形結構、圖狀結構;
集合結構:除了同屬於一種類型外,別無其它關系
線性結構:元素之間存在一對一關系常見類型有: 數組,鏈表,隊列,棧,它們之間在操作上有所區別.例如:鏈表可在任意位置插入或刪除元素,而隊列在隊尾插入元素,隊頭刪除元素,棧只能在棧頂進行插入,刪除操作.
樹形結構:元素之間存在一對多關系,常見類型有:樹(有許多特例:二叉樹、平衡二叉樹、查找樹等)
圖形結構:元素之間存在多對多關系,圖形結構中每個結點的前驅結點數和後續結點多個數可以任意
『肆』 幾種常見的重要數據結構總結
幾種常見的重要數據結構總結
棧的表示
1. 數組
2. 鏈表(優點:無需指定大小,不存在棧溢出等情況的處理)
隊列表示
1. 數組(構造成循環隊列以提高空間使用效率)
2. 鏈表
二叉樹 (滿二叉樹、完全二叉樹、稀疏二叉樹等)
1. 數組(二叉樹按照層次編號,空缺的孩子結點也要保留編號,這使得當二叉樹比較稀疏時,空間利用率很低)
2. 鏈表(二叉鏈表(三個域:左孩子,右孩子和結點的值),三叉鏈表(多一個父結點的指針,解決了找祖先結點困難的問題))
樹
1. 廣義表
廣義表是一個n個表元素組成的有限序列,表元素或者是數據元素(atom),或者是子表(sublist),一個廣義表的元素結構可以由3個域構成
第一個域標識該表結點是什麼類型的結點(type=0,廣義表專用的表頭結點;type=1,數據結點;type=2,子表結點),第二個域是值域(如果是數據元素類結點,則是相應數據值,如果是子表則存放指向子表表頭的指針),第三個域存放尾指針(type=0,空;type!=0,同一層下一個結點的指針)
2. 雙親表示
一個結點有兩個域,data和parent域。可組織成連續存儲單元形式(數組),或者鏈表形式。
3. 左子女右兄弟
一個結點有三個域,data,first child,next sibling。當然也可以組織成數組或者鏈表形式。
數組其實可以表示任意類型的信息,不同的解析方式產生不同的結果。
霍夫曼樹、霍夫曼編碼
霍夫曼樹:帶全路徑長度最小的二叉樹應是權值大的外結點離根節點最近的擴充二叉樹(n個葉結點帶權值)
Huffman Code是霍夫曼樹在數據編碼中的應用,解決數據的最小冗餘編碼問題,是數據壓縮學的基礎。
霍夫曼演算法:
1. 問題:將權值為{W0,W1,...,Wn}的擴充二叉樹構造霍夫曼樹
2. 演算法過程:
(1). 由給定的n個權值,構造具有n棵擴充二叉樹的森林F,其中每棵樹Ti只有一個帶有權值Wi的根結點,左右子樹為空。
(2). 重復以下步驟,直至F中只剩下一棵擴充二叉樹,此即為霍夫曼樹
①. 在F中選取兩棵根結點權值最小的擴充二叉樹,作為左右子樹構造一棵新的二叉樹,新樹的根結點的權值為其左右子樹根結點權值之和。
②. 在F中刪去兩棵二叉樹
③. 將新二叉樹加入F
圖
圖的存儲表示
1. 鄰接矩陣
2. 鄰接表
圖的遍歷、連通性
1. 深度優先搜索(對應棧)DFS
2. 寬度優先搜索(對應隊列)BFS
最小生成樹(Minimum-cost Spanning Tree)
1. Kruskal演算法(依次往圖中加入最小權值且兩個鄰接點位於不同連通分量即不構成迴路的邊)
2. Prim演算法(從某一頂點出發,選擇與其關聯的具有最小權值的邊,將另一頂點加入到集合U中,以後每步從一個頂點在U中,另一個不在U中的各條邊中選擇權值最小的邊,將其不在U中的頂點加入U中,直至所有頂點都在U中)
最短路徑問題
1. Dijkstra演算法 (圖中沒有負權值邊)
2. Bellman-Ford演算法(圖中沒有負權值路徑)
活動網路
1. AOV(用頂點表示活動的網路,比如學生課程學習工程圖)
拓撲排序問題
2.AOE
關鍵路徑問題
『伍』 c語言常見的數據結構有哪些
1、線性數據結構
元素之間一般存在元素之間存在一對一關系,是最常用的一類數據結構,典型的有:數組、棧、隊列和線性表。
2、樹形結構
結點間具有層次關系,每一層的一個結點能且只能和上一層的一個結點相關,但同時可以和下一層的多個結點相關,稱為“一對多”關系,常見類型有:樹、堆。
3、圖形結構
在圖形結構中,允許多個結點之間相關,稱為“多對多”關系。
(1)線性數據結構:元素之間一般存在元素之間存在一對一關系,是最常用的一類數據結構,典型的有:數組、棧、隊列和線性表
(2)樹形結構:結點間具有層次關系,每一層的一個結點能且只能和上一層的一個結點相關,但同時可以和下一層的多個結點相關,稱為“一對多”關系,常見類型有:樹、堆
(3)圖形結構:在圖形結構中,允許多個結點之間相關,稱為“多對多”關系
『陸』 常見的數據結構有哪些,並說明其在實際中的應用
線性表,棧,隊列,二叉樹,B_樹,圖等,每種數據結構都有自己的用處吧,比如B_樹,計算機裡面的文件結構就是運用它。圖,可以抽象為生活中地方與地方的關系,可以求兩個地方的最短路徑。還有二叉樹,運用與排序等。用處太多了,自己慢慢發掘喔
『柒』 數據結構包括哪幾種基本結構,各有什麼特點
三種:
①
集合結構。特點:
集合中任何兩個數據元素之間都沒有邏輯關系,組織形式鬆散.
②
樹形結構。特點:樹形結構具有分支、層次特性,其形態有點象自然界中的樹.
③圖狀結構。特點:圖狀結構中的結點按邏輯關系互相纏繞,任何兩個結點都可以鄰接。
非線性結構
傳統文本(例如書籍中的文章和計算機的文本文件)都是線性結構,閱讀是需要注意順序閱讀,而超文本則是一個非線性結構。在製作文本時,可將寫作素材按內部聯系劃分成不同關系的單元,然後用製作工具將其組成一個網型結構。閱讀時,不必按線性方式順序往下讀,而是有選擇的閱讀自己感興趣的部分。
『捌』 常用數據結構有哪些
數據元素相互之間的關系稱為結構。有四類基本結構:集合、線性結構、樹形結構、圖狀結構;
集合結構:除了同屬於一種類型外,別無其它關系
線性結構:元素之間存在一對一關系常見類型有: 數組,鏈表,隊列,棧,它們之間在操作上有所區別.例如:鏈表可在任意位置插入或刪除元素,而隊列在隊尾插入元素,隊頭刪除元素,棧只能在棧頂進行插
入,刪除操作.
樹形結構:元素之間存在一對多關系,常見類型有:樹(有許多特例:二叉樹、平衡二叉樹、查找樹等)
圖形結構:元素之間存在多對多關系,圖形結構中每個結點的前驅結點數和後續結點多個數可以任意
『玖』 常見的數據結構有哪些
常見的數據結構有數組、記錄、鏈表、堆棧、隊列、樹、圖、堆、散列。