當前位置:編程學習大全網 - 編程語言 - 數據結構講的是什麽

數據結構講的是什麽

問題壹:數據結構在講什麽? 數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在壹種或多種特定關系的數據元素的 *** 。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。

壹、線性表

(壹)線性表的定義和基本操作

(二) 線性表的實現

1. 順序存儲結構

2. 鏈式存儲結構

3. 線性表的應用

二、棧、隊列和數組

(壹)棧和隊列的基本概念

(二)棧和隊列的順序存儲結構

(三)棧和隊列的鏈式存儲結構

(四)棧和隊列的應用

(五)特殊矩陣的壓縮存儲

三、樹與二叉樹

(壹)樹的概念

(二)二叉樹

1. 二叉樹的定義及其主要特征

2. 二叉樹的順序存儲結構和鏈式存儲結構

3. 二叉樹的遍歷

4. 線索二叉樹的基本概念和構造

5. 二叉排序樹

6. 平衡二叉樹

(三)樹、森林

1. 書的存儲結構

2. 森林與二叉樹的轉換

3. 樹和森林的遍歷

(四)樹的應用

1. 等價類問題

2. 哈夫曼(Huffman)樹和哈夫曼編碼

四、 圖

(壹) 圖的概念

(二) 圖的存儲及基本操作

1. 鄰接矩陣法

2. 鄰接表法

(三) 圖的遍歷

1. 深度優先搜索

2. 廣度優先搜索

(四) 圖的基本應用及其復雜度分析

1. 最小(代價)生成樹

2. 最短路徑

3. 拓撲排序

4. 關鍵路徑

五、 查找

(壹) 查找的基本概念

(二) 順序查找法

(三) 折半查找法

(四) B-樹

(五) 散列(Hash)表及其查找

(六) 查找算法的分析及應用

六、 內部排序

(壹) 排序的基本概念

(二) 插入排序

1. 直接插入排序

2. 折半插入排序

(三) 氣泡排序(bubble sort)

(四) 簡單選擇排序

(五) 希爾排序(shell sort)

(六) 快速排序

(七) 堆排序

(八) 二路歸並排序(merge sort)

(九) 基數排序

(十) 各種內部排序算法的比較

(十壹) 內部排序算法的應用

問題二:數據結構到底是講什麽的呢 相信妳也知道俗話說:計算機程序=算法+數據結構。數據結構就是講的怎樣在計算機程序中組織存儲批量數據,以及為什麽這樣組織。相同的壹批數據,不同的組織方式(不同的數據結構)有不同的優缺點,有的利於查找(hash);有的利於排序(樹);有的利於插入、刪除(節點式鏈表)。在深入還有不同組織方式的查找、排序等等操作的時間、空間復雜度。

問題三:數據結構是什麽意思?希望講的通俗壹點。 數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在壹種或多種特定關系的數據元素的 *** 。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。bjl.website

問題四:什麽是數據結構? 30分 數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在壹種或多種特定關系的數據元素的 *** 。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。

數據結構在計算機科學界至今沒有標準的定義。個人根據各自的理解的不同而有不同的表述方法:

Sartaj Sahni在他的《數據結構、算法與應用》壹書中稱:“數據結構是數據對象,以及存在膽該對象的實例合組成實例的數據元素之間的各種聯系。這些聯系可以通過定義相關的函數來給出。”他將數據對象(data object)定義為“壹個數據對象是實例或值的 *** ”。

Clifford A.Shaffer在《數據結構與算法分析》壹書中的定義是:“數據結構是 ADT(抽象數據類型Abstract Data Type) 的物理實現。”

問題五:數據結構學的到底是什麽,和算法的關系 本人乃壹個數據癡迷者,在計算機的道路上,也是壹個數據結構的癡迷者,現在大學裏面和同學搞開發也癡迷於數據庫,我就我個人的理解給妳談壹談:首先,數據結構是壹門計算機語言學的基礎學科,它不屬於任何壹門語言,其體現的是幾乎所有標準語言的算法的思想。上面的概念有壹些模糊,我們現在來具體說壹說,相信妳門的數據結構使用的是壹門具體的語言比如C/C++語言來說明,那是為了輔助的學習數據結構,而數據結構本身不屬於任何語言(相信妳把書上的程序敲到電腦裏面是不能通過的吧,其只是描述了過程,要調試程序,還需要修改和增加壹些東西)。妳們的書上開始應該在講究數據的物理存儲結構/邏輯存儲結構等概念,說明數據結構首先就是“數據的結構”,在內存上的存儲方式,就是物理的存儲結構,在程序使用人員的思想上它是邏輯的,比如:妳們在C/C++中學習到鏈表,那麽鏈表是什麽壹個概念,妳們使用指針制向下壹個結點的首地址,讓他們串聯起來,形成壹個接壹個的結點,就像顯示生活中的火車壹樣。而這只是對於程序員的概念,但是在內存中存儲的方式是怎樣的那?對於妳程序員來說這是“透明”的,其內部分配空間在那裏,都是隨機的,而內存中也沒有壹個又壹根的線將他們串聯起來,所以,這是壹個物理與邏輯的概念,對於我們程序員只需要知道這些就可以了,而我們主要要研究的是“邏輯結構”。我可以給妳壹個我自己總結的壹個概念:所有的算法必須基於數據結構生存。也就是說,我們對於任何算法的編寫,必須依賴壹個已經存在的數據結構來對它進行操作,數據結構成為算法的操作對象,這也是為什麽算法和數據結構兩門分類不分家的概念,算法在沒有數據結構的情況下,沒有任何存在的意義;而數據結構沒有算法就等於是壹個屍體而沒有靈魂。估計這個對於算法的初學者可能有點暈,我們在具體的說壹些東西吧:我們在數據結構中最簡單的是什麽:我個人把書籍中線性表更加細化壹層(這裏是為了便於理解在這樣說的):單個元素,比如:int i;這個i就是壹個數據結構,它是壹個什麽樣的數據結構,就是壹個類型為int的變量,我們可以對它進行加法/減法/乘法/除法/自加等等壹系列操作,當然對於單個元素我們對它的數據結構和算法的研究沒有什麽意義,因為它本來就是原子的,某些具體運算上可能算法存在比較小的差異;而提升壹個層次:就是我們的線性表(壹般包含有:順序表/鏈表)那麽我們研究這樣兩種數據結構主要就是要研究它的什麽東西那?壹般我們主要研究他們以結構為單位(就是結點)的增加/刪除/修改/檢索(查詢)四個操作(為什麽有這樣的操作,我在下面說到),我們壹般把“增加/刪除/修改”都把它稱為更新,對於壹個結點,若要進行更新壹類的操作比如:刪除,對於順序表來說是使用下標訪問方式,那麽我們在刪除了壹個元素後需要將這個元素後的所有元素後的所有元素全部向前移動,這個時間是對於越長的順序表,時間越長的,而對於鏈表,沒有順序的概念,其刪除元素只需要將前壹個結點的指針指向被刪除點的下壹個結點,將空間使用free()函數進行釋放,還原給操作系統。當執行檢索操作的時候,由於順序表直接使用下標進行隨機訪問,而鏈表需要從頭開始訪問壹壹匹配才可以得到使用的元素,這個時間也是和鏈表的結點個數成正比的。所以我們每壹種數據結構對於不同的算法會產生不同的效果,各自沒有絕對的好,也沒有絕對的不好,他們都有自己的應用價值和方式;這樣我們就可以在實際的項目開發中,對於內部的算法時間和空間以及項目所能提供的硬件能力進......>>

問題六:誰的數據結構講的好 妳好。

用網易公開課,可以看斯坦福的和MIT的,那個秒殺國內的。

可以用手機WIFI看,也可以用電腦看。

如果我的回答沒能幫助您,請繼續追問。.

問題七:用妳的理解說,什麽是數據結構. 數據結構+算法=程序數據結構是指數據在計算機內存(或磁盤中)的組織形式

所謂組織形式是指數據的

{

邏輯結構:數據間的鄰接關系 如 線性、樹形、圖狀;

存儲結構:數據以何種方式進行存儲 如 順序式、鏈式;

}

例:對10個人的成績進行排序的算法

{

首先,將10個人的信息和成績輸入計算機

然後進行排序

最後,輸出結果

}第壹步是存儲信息 關鍵要考慮2個問題 :以何種方式將10個人的信息存入(存儲結構),存入候每個人之間的關系是什麽?(邏輯結構)

即 要求 指明數據在計算機內的組織形式 這是壹個數據結構問題 顯然如果只有這10個數據的話,我們會選擇數組這種數據結構進行組織

先說幾種常見的數據結構: 數組 鏈表 二叉樹 棧 哈希表等所有的數據結構都通過其邏輯結構和存儲結構來定位,二者也是每壹個數據結構的核心部分。如 1維數組的

邏輯結構:線性

存儲結構:順序式

單鏈表 是 線性和鏈式 隊列是 線性和順序式解決了數據的存儲問題

接著思考如何排序

首先處理同壹類問題(此處為排序),如果數據結構不同,其算法也不同。同樣是排序卻有堆排序和數組排序之分等

因此在考慮算法時,要註意考慮數據結構。

在程序設計時更應該綜合考慮算法與數據結構的選擇與搭配,以設計出最適合的程序

因此 程序設計可分二步

{

1.選擇數據結構

2.根據選擇的數據結構設計算法

}

然後壹個程序即構建成功了。

原創.

問題八:數據結構到底怎麽學比較好啊? 寫數據結構代碼編程了學習C語言,是大多數初學者的經驗,其實有辦法可以避免的。

多想> 多看 > 多寫字 > 多動鍵盤

養成好的編程習慣很重要。

做任何工作之前,要把自己的思路整理清楚 參考別人的相關工作經驗,針對自己的需求做分析 把思路落實到紙張上 采用自頂向下的編程方式,先把妳的個函數的功能,入口和出口描述清楚 每個函數內部的執行流程,都要註釋好。 最後再分段逐步編碼。

這樣可以有效的避免大多數的錯誤發生。 即便出現錯誤,也很容易定位到問題的所在。 不知道大家是怎樣看待數據結構這門課的,有多少人覺得數據結構很難呢?我知道還是有壹些同學這樣覺得的,有時候我跟我的朋友講要怎樣學,講了壹大堆以後,他就向我抱怨:我以前c++都沒有學好,數據結構更學不好了,這哪跟哪的話啊,數據結構與c++沒有什麽關系,我想假如抱有這樣的心態,自己就不相信自己,那是不可能學好的,然後那些覺得數據結構很難的同學,我想他們應該會很看重數據結構的吧,然後就壹天到晚捧著壹本數據結構,這樣不會覺得很累嗎?而且因為覺得很難,就容易不相信自己,學的效率也不會很好,個人認為數據結構很好學,很容易學,或許這有點妄自菲薄吧,但是因為我覺得很容易,當然就會覺得自己沒問題,學得很輕松,效果也還可以。大家都是從高考走過來的,應該知道心態的重要性吧,兩種不同的心態,完全就是兩種不同的效果。學了這麽久數據結構了,我們到底在學些什麽呢?不知道大家有沒有想過,那現在我們現在來歸納壹下我們學習的內容吧,其實學到現在我們也就學了幾種普通的數據結構,象二叉樹,樹,圖,還有排序的問題,前面的線性表和字符串也就是壹些概念,當然還有壹個很重要的KMP算法,然後在每種數據結構中我們也就是學到了若幹處理的算法,我想真正數起來也就是幾十個算法吧。學習數據結構也就是要掌握這幾十種算法,多簡單。至於如何掌握每個算法呢,我想就是多看看書,重要的是能夠理解。 如果真的想學好數據結構的話,最好是能夠自己思考問題,不要剛想了壹會就覺得做不出來,然後就去問其他人。其實張老師給我們的作業還是基於我們的水平的,我絕對相信我們自己能夠獨自想出算法,雖有可能會比較長時間吧,但是這樣肯定會比問其他人學到更多的東西。當然我並不是說不要問同學,有時候就是腦筋轉不過來,壹問別人就懂了,當然問了別人不能只是我知道了這個算法,還應該去想如何思考才能得到這個算法,這樣水平會提高很多。

很多計算機專業的同學對於大學2年級開設的數據結構課程很是頭痛. 看見大家總在談論數據結構重要性,可使自己學習卻總也找不到合適的方法. 下面我和大家分享壹下我過去壹年多以來學習和應用數據結構方面壹些經驗. 內容都是來自作者本人的壹些經歷和體驗,希望對於大家學習數據結構有引導作用。 1什麽是數據結構 數據結構從文字上面來看,為數據和結構兩部分。這樣就很容易聯系到數據結構的本質是壹種對於數據結構花的知識。補充壹個知識點,數據結構本質和離散數學有很密切的關系。離散數學是處理的是離散(非連續的)的數據,站在數據結構的觀點上來看,也可以理解是壹種非連續數據的結構。 2數據結構和程序設計語言 數據結構和程序設計語言本身沒有任何聯系,唯壹有的關系就實用程序語言去描述數據結構。 因為數據結構是壹種抽象數據,通過程序設計語言可以將在計算機中進行實現。今天大學裏數據結構課程常用來描述數據結構的語言有C程序設計語言,C 程序設計語言和JAVA程序設計語言.而對於喜歡其他語言的同學完全可以自己通過學習數據結構後用自己熟悉的程序設計語言去完成程序化的描述. 我自己過去......>>

問題九:數據結構視頻哪個講的比較好 ! 清華大學 嚴蔚敏 的 - =# 優酷上有全集…… 但兄臺妳要忍住、剛開始看的時候嚇壞我了、、、還有壹個是中山大學的、普通話不太標準 講的還比較徹底……都是在優酷或土豆上的

  • 上一篇:Setw編程
  • 下一篇:滄州華北工業學校是公立的嗎
  • copyright 2024編程學習大全網