數據結構有什麼?
常用數據結構有哪些
數據元素相互之間的關係稱為結構。有四類基本結構:集合、線性結構、樹形結構、圖狀結構;
集合結構:除了同屬於一種類型外,別無其它關係
線性結構:元素之間存在一對一關係常見類型有: 數組,鏈表,隊列,棧,它們之間在操作上有所區別.例如:鏈表可在任意位置插入或刪除元素,而隊列在隊尾插入元素,隊頭刪除元素,棧只能在棧頂進行插
入,刪除操作.
樹形結構:元素之間存在一對多關係,常見類型有:樹(有許多特例:二叉樹、平衡二叉樹、查找樹等)
圖形結構:元素之間存在多對多關係,圖形結構中每個結點的前驅結點數和後續結點多個數可以任意
算法和數據結構有什麼區別??
數據結構是算法實現的基礎,算法總是要依賴於某種數據結構來實現的。往往是在發展一種算法的時候,構建了適合鼎這種算法的數據結構。一種數據結構如果脫離了算法,那還有什麼用呢?實際上也不存在一本書單純的講數據結構,或者單純的講算法。當然兩者也是有一定區別的,算法更加的抽象一些,側重於對問題的建模,而數據結構則是具體實現方面的問題了,兩者是相輔相成的。
什麼是數據結構,數據之間的關係有幾種
數據結構是一門研究非數值計算的程序設計問題中計算機的操作對象以及它們之間的關係和操作等等的學科。
——《數據結構》(C語言版),嚴蔚敏,清華大學出版社。
數據之間的結構有線性的數據結構(計算機處理的對象之間如果存在著一種最簡單的線性關係,則這類數學模型可稱為線性的數據結構)和表、樹和圖之類的數據結構(描述非數值問題的數學模型時不能用數學方程)。
數據結構中*和&的區別是什麼
應該是C++裡的吧?沒有在C語言版的數據結構中看見&吧?
在定義時,* 是一個標識符,聲明該變量是一個指針,比如說int *p; 那p就是一個指向int型的指針;
在調用時,*p是指指針p指向的那個變量,比如說之前有int a=5;int *p=a;那麼p的值是a的地址,也就是指針p指向a,*p則等於a的值,即*p=5。
而&,則是引用,比如說有定義int a=5;再定義int b=&a;那麼這裡的b則引用a的值,即b=5
,而再給b賦值:b=10,a的值也會變為10。
我想樓主會問*和&的區別,應該是針對函數定義裡的參數而言吧,因為這裡的這兩者比較相似:
舉幾個簡單例子:
先定義有int x=0;和int *p=x;
1、若定義函數: void fun_1(int a){ a=5;} , 則調用:fun_1(x); 之後,x還等於0;因為fun_1函數只改變了形參a的值,a只是fun_1函數裡的局部變量,調用fun_1(x)相當於是“a=x;a=5;”,x沒變;
2、若定義函數:void fun_2(int &a){ a=5;} , 則調用:fun_2(x); 之後,x等於5;因為這裡的a引用了x的值;
3、若定義函數:void fun_3(int *a){ *a=5;} , 則調用:fun_3(p); 之後,x也等於5;因為fun_3函數的參數a是一個指針,相當於a=p;*a則與*p指向同一地址,改變*a即改變*p即x
數據結構都有哪些分類呢?
根據數據元素間關係的不同特性,將數據結構常分為下列四類基本的結構:
⑴集合結構。該結構的數據元素間的關係是“屬於同一個集合”。
⑵線性結構。該結構的數據元素之間存在著一對一的關係。
⑶樹型結構。該結構的數據元素之間存在著一對多的關係。
⑷圖形結構。該結構的數據元素之間存在著多對多的關係,也稱網狀結構。
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關係的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。
數據結構是什麼?
呵呵,看你這樣喜歡去想是什麼的,將來肯定會知道的!但是既然問了,我就說一下我自己的見解!
其實,大家都說,數據結構+算法=程序!數據結構就是提供一個程序中數據的邏輯視圖!什麼邏輯視圖呢?就是在你看起來你這樣來組織你的數據!比如說一張地圖!有很多城市,每個城市之間有很多路,每條路有距離!讓你來求一下給定的兩個城市的最短路!然後你就可用“無向圖”來組織這張地圖!就是用節點表示城市,邊表示路,邊的權表示路長度!接下來你的程序就可以用算法在這張圖上(無向圖)上來操作!可能用dijkstra算法來求兩點之間的最短路!
數組是一種數據結構!雖然簡單,但是她也是一種數據的存儲方式,就是這樣一個挨一個的存儲!數組也有很多很好的性質!
說這麼多呢!其實數據結構是數據的組織方式,為你的程序提供更高的效率,不管用
數組,鏈表(單向,雙向,循環等等),堆棧(最大堆,最小堆),隊列(優先級隊列)樹(二叉樹,紅黑樹,AVL樹,B+樹等等)區間樹,並查集,圖等等都是對於特定的問題,來說你這樣組織數據是你的程序更加高效而已!數據結構和算法,一個用來存儲數據,一個用來操作數據!
什麼是數據結構
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關係的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。
名詞定義
數據結構是指相互之間存在著一種或多種關係的數據元素的集合和該集合中數據元素之間的關係組成。記為:
Data_Structure=(D,R)
其中D是數據元素的集合,R是該集合中所有元素之間的關係的有限集合。
其它定義
Sartaj Sahni在他的《數據結構、算法與應用》一書中稱:“數據結構是數據對象,以及存在於該對象的實例和組成實 例的數據元素之間的各種聯繫。這些聯繫可以通過定義相關的函數來給出。”他將數據對象(data object)定義為“一個數據對象是實例或值的集合”。
Clifford A.Shaffer在《數據結構與算法分析》一書中的定義是:“數據結構是ADT(抽象數據類型Abstract Data Type) 的物理實現。”
Robert L.Kruse在《數據結構與程序設計》一書中,將一個數據結構的設計過程分成抽象層、數據結構層和實現層。其中,抽象層是指抽象數據類型層,它討論數據的邏輯結構及其運算,數據結構層和實現層討論一個數據結構的表示和在計算機內的存儲細節以及運算的實現。
數據結構具體指同一類數據元素中,各元素之間的相互關係,包括三個組成成分,數據的邏輯結構,數據的存儲結構和數據運算結構。
研究對象
一、數據的邏輯結構:指反映數據元素之間的邏輯關係的數據結構,其中的邏輯關係是指數據元素之間的前後件關係,而與他們在計算機中的存儲位置無關。邏輯結構包括:
1.集合
2.線性結構
3.樹形結構
4.圖形結構
二、數據的物理結構:指數據的邏輯結構在計算機存儲空間的存放形式。
三、數據結構的運算
數據結構有幾種結構類型,分別是什麼
如果指的是邏輯結構,分為4種:集合、線性、樹形、圖形
如果指的是物理結構(也叫做存儲結構),主要也是4種:順序、鏈式、索引、散列