什麼叫數據結構?
數據結構中*和&的區別是什麼
應該是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
數據結構中—>表示什麼意思
舉個例子就比較容易明白,如
struct point{
int x;
int y;}
然後定義一個變量,如 struct point *p;p是一個結構體指針吧,取其成員x有兩種方法;(*p).x或p->x;
(*p).x或p->x;是同樣的意思,後者是前者的簡寫吧
數據結構說的是什麼??
您好很高興回答你的問題。
我的理解數據結構其實說的簡單一點就是我們的數據存儲的結構。因為在程序設計的時候會有很多的數據,這些數據可能需要不同的使用方式。這樣數據的存儲方式就影響著數據使用的效率。常用的結構比如隊列,棧,樹形結構,圖結構,這些都有對數據不同的存儲方式和不同的訪問方式。根據對數據不同的用法來決定用哪種結構來存儲。
如果要學好編程的話數據結構是必須學好的,因為不僅僅是那些結構,每一種結構裡面會有幾種算法,這些算法其實包涵了不同的思想。深入的理解了這些思想就可以自己構思算法。
就說這麼多吧,樓主應該大一,加油。祝學習順利。
希望對你有幫助。
什麼是數據結構
在計算機科學中,數據結構是一門研究非數值計算的程序設計問題中計算機的操作對象(數據元素)以及它們之間的關係和運算等的學科,而且確保經過這些運算後所得到的新結構仍然是原來的結構類型。
“數據結構”作為一門獨立的課程在國外是從1968年才開始設立的。 1968年美國唐·歐·克努特教授開創了數據結構的最初體系,他所著的《計算機程序設計技巧》第一卷《基本算法》是第一本較系統地闡述數據的邏輯結構和存儲結構及其操作的著作。“數據結構”在計算機科學中是一門綜合性的專業基礎課。數據結構是介於數學、計算機硬件和計算機軟件三者之間的一門核心課程。數據結構這一門課的內容不僅是一般程序設計(特別是非數值性程序設計)的基礎,而且是設計和實現編譯程序、操作系統、數據庫系統及其他系統程序的重要基礎。
計算機是一門研究用計算機進行信息表示和處理的科學。這裡面涉及到兩個問題:信息的表示,信息的處理 。
而信息的表示和組織又直接關係到處理信息的程序的效率。隨著計算機的普及,信息量的增加,信息範圍的拓寬,使許多系統程序和應用程序的規模很大,結構又相當複雜。因此,為了編寫出一個“好”的程序,必須分析待處理的對象的特徵及各對象之間存在的關係,這就是數據結構這門課所要研究的問題。眾所周知,計算機的程序是對信息進行加工處理。在大多數情況下,這些信息並不是沒有組織,信息(數據)之間往往具有重要的結構關係,這就是數據結構的內容。數據的結構,直接影響算法的選擇和效率。
計算機解決一個具體問題時,大致需要經過下列幾個步驟:首先要從具體問題中抽象出一個適當的數學模型,然後設計一個解此數學模型的算法(Algorithm),最後編出程序、進行測試、調整直至得到最終解答。尋求數學模型的實質是分析問題,從中提取操作的對象,並找出這些操作對象之間含有的關係,然後用數學的語言加以描述。計算機算法與數據的結構密切相關,算法無不依附於具體的數據結構,數據結構直接關係到算法的選擇和效率。運算是由計算機來完成,這就要設計相應的插入、刪除和修改的算法 。也就是說,數據結構還需要給出每種結構類型所定義的各種運算閥算法。
數據是對客觀事物的符號表示,在計算機科學中是指所有能輸入到計算機中並由計算機程序處理的符號的總稱。
數據元素是數據的基本單位,在計算機程序中通常作為一個整體考慮。一個數據元素由若干個數據項組成。數據項是數據的不可分割的最小單位。有兩類數據元素:一類是不可分割的原子型數據元素,如:整數"5",字符 "N" 等;另一類是由多個款項構成的數據元素,其中每個款項被稱為一個數據項。例如描述一個學生的信息的數據元素可由下列6個數據項組成。其中的出生日期又可以由三個數據項:"年"、"月"和"日"組成,則稱"出生日期"為組合項,而其它不可分割的數據項為原子項。
關鍵字指的是能識別一個或多個數據元素的數據項。若能起唯一識別作用,則稱之為 "主" 關鍵字,否則稱之為 "次" 關鍵字。
數據對象是性質相同的數據元素的集合,是數據的一個子集。數據對象可以是有限的,也可以是無限的。
數據處理是指對數據進行查找、插入、刪除、合併、排序、統計以及簡單計算等的操作過程。在早期,計算機主要用於科學和工程計算,進入八十年代以後,計算機主要用於數據處理。據有關統計資料表明,現在計算機用於數據處理的時間比例達到80%以上,隨著時間的推移......
數據結構中typedef是什麼意思?
類型定義符 typedef C語言不僅提供了豐富的數據類型 , 而且還允許由用戶自己定義類型說明符 , 也就是說 允許由用戶為數據類型取“別名” 。類型定義符 typedef 即可用來完成此功能。例如,有整 型量a,b, 其說明如下: int a,b; 其中int 是整型變量的類型說明符。 int 的完整寫法為 integer ,為了增加程序的可讀性, 可把整型說明符用 typedef 定義為: typedef int INTEGER 這以後就可用 INTEGER 來代替 int 作整型變量的類型說明了。 例如: INTEGER a,b; 它等效於: int a,b; 用typedef 定義數組 、 指針 、 結構等類型將帶來很大的方便 , 不僅使程序書寫簡單而且 使意義更為明確,因而增強了可讀性。 例如: typedef char NAME[20]; 表示 NAME 是字符數組類型,數組長度為 20 。然後可 用NAME 說明變量,如: NAME a1,a2,s1,s2; 完全等效於: char a1[20],a2[20],s1[20],s2[20] 又如: 又如: typedef struct stu { char name[20]; int age; char sex; } STU; 定義STU 表示 stu 的結構類型,然後可用 STU 來說明結構變量: STU body1,body2; typedef 定義的一般形式為: typedef 原類型名 新類型名 其中原類型名中含有定義部分,新類型名一般用大寫表示,以便於區別。 有時也可用宏定義來代替 typedef 的功能,但是宏定義是由預處理完成的, 而typedef則是在編譯時完成的,後者更為靈活方便。
在數據結構中什麼叫結點
在數據結構的圖形表示中,對於數據集合中的每一個數據元素用中間標有元素值的方框表示,一般稱之為數據結點,簡稱結點。 在C語言中,鏈表中每一個元素稱為“結點”,每個結點都應包括兩個部分:一為用戶需要用川實際數據;二為下一個結點的地址,即指針域和數據域。 數據結構中的每一個數據結點對應於一個儲存單元,這種儲存單元稱為儲存結點,也可簡稱結點。
數據結構是什麼?
呵呵,看你這樣喜歡去想是什麼的,將來肯定會知道的!但是既然問了,我就說一下我自己的見解!
其實,大家都說,數據結構+算法=程序!數據結構就是提供一個程序中數據的邏輯視圖!什麼邏輯視圖呢?就是在你看起來你這樣來組織你的數據!比如說一張地圖!有很多城市,每個城市之間有很多路,每條路有距離!讓你來求一下給定的兩個城市的最短路!然後你就可用“無向圖”來組織這張地圖!就是用節點表示城市,邊表示路,邊的權表示路長度!接下來你的程序就可以用算法在這張圖上(無向圖)上來操作!可能用dijkstra算法來求兩點之間的最短路!
數組是一種數據結構!雖然簡單,但是她也是一種數據的存儲方式,就是這樣一個挨一個的存儲!數組也有很多很好的性質!
說這麼多呢!其實數據結構是數據的組織方式,為你的程序提供更高的效率,不管用
數組,鏈表(單向,雙向,循環等等),堆棧(最大堆,最小堆),隊列(優先級隊列)樹(二叉樹,紅黑樹,AVL樹,B+樹等等)區間樹,並查集,圖等等都是對於特定的問題,來說你這樣組織數據是你的程序更加高效而已!數據結構和算法,一個用來存儲數據,一個用來操作數據!
數據結構和語言是什麼關係?
數據結構其本身是和語常無關的,也就是說數據結構只有一個版本,至於應該選擇哪一個語言進行學習,可以就個人愛好與善長決定。C,C++,Java都是不 錯的選擇。數據結構和語言的關係就像數學定理和描述它的自然語言一樣,你可以用中文表達勾股定理,也可以用英文,法文或者世界上任何一種語言表達它,但是 世上只有一個勾股定理。當然,如果任何一種語言你都不會,那將無法學好數據結構的。如果你打算今後都用C語言,那麼可以認為數據結構是C語言的加強和發 展。
什麼是數據結構,數據之間的關係有幾種
數據結構是一門研究非數值計算的程序設計問題中計算機的操作對象以及它們之間的關係和操作等等的學科。
——《數據結構》(C語言版),嚴蔚敏,清華大學出版社。
數據之間的結構有線性的數據結構(計算機處理的對象之間如果存在著一種最簡單的線性關係,則這類數學模型可稱為線性的數據結構)和表、樹和圖之類的數據結構(描述非數值問題的數學模型時不能用數學方程)。
什麼是算法與數據結構
拿華騰的交通卡系統做例子吧
先說數據結構:
程序裡面有很多用戶信息,這些信息是用結構體存放,是用鏈表的形式,還是用哈希表等等的方法進行排列,這個就是數據結構
算法:
要從這些數據結構裡找出一個結點,是用遍歷搜索呢還是用折半搜索之類的方法,叫做算法。
LZ可以體會下。