㈠ 數據結構是什麼啊
數據結構是指相互之間存在著一種或多種關系的數據元素的集合和該集合中數據元素之間的關系組成。記為:數據結構Data_Structure=(D,R)其中D是數據元素的集合,R是該集合中所有元素之間的關系的有限集合。
數據結構是在整個計算機科學與技術領域上廣泛被使用的術語。它用來反映一個數據的內部構成,即一個數據由那些成分數據構成,以什麼方式構成,呈什麼結構。
數據結構有邏輯上的數據結構和物理上的數據結構之分。邏輯上的數據結構反映成分數據之間的邏輯關系,而物理上的數據結構反映成分數據在計算機內部的存儲安排。數據結構是數據存在的形式。
數據結構是信息的一種組織方式,其目的是為了提高演算法的效率,它通常與一組演算法的集合相對應,通過這組演算法集合可以對數據結構中的數據進行某種操作。數據結構主要研究數據的各種邏輯結構和存儲結構,以及對數據的各種操作。
因此,主要有三個方面的內容:數據的邏輯結構;數據的物理存儲結構;對數據的操作(或演算法)。通常,演算法的設計取決於數據的邏輯結構,演算法的實現取決於數據的物理存儲結構。
(1)數據結構講的是什麼擴展閱讀:
一、數據的邏輯結構:指反映數據元素之間的邏輯關系的數據結構,其中的邏輯關系是指數據元素之間的前後件關系,而與他們在計算機中的存儲位置無關。
邏輯結構包括:
1、集合:數據結構中的元素之間除了「同屬一個集合」 的相互關系外,別無其他關系;
2、線性結構:數據結構中的元素存在一對一的相互關系;
3、樹形結構:數據結構中的元素存在一對多的相互關系;
4、圖形結構:數據結構中的元素存在多對多的相互關系。
二、數據的物理結構:指數據的邏輯結構在計算機存儲空間的存放形式。
數據的物理結構是數據結構在計算機中的表示(又稱映像),它包括數據元素的機內表示和關系的機內表示。
由於具體實現的方法有順序、鏈接、索引、散列等多種,所以,一種數據結構可表示成一種或多種存儲結構。
數據元素的機內表示(映像方法): 用二進制位(bit)的位串表示數據元素。通常稱這種位串為節點(node)。
當數據元素有若干個數據項組成時,位串中與個數據項對應的子位串稱為數據域(data field)。因此,節點是數據元素的機內表示(或機內映像)。
關系的機內表示(映像方法):數據元素之間的關系的機內表示可以分為順序映像和非順序映像,常用兩種存儲結構:順序存儲結構和鏈式存儲結構。
順序映像藉助元素在存儲器中的相對位置來表示數據元素之間的邏輯關系。非順序映像藉助指示元素存儲位置的指針(pointer)來表示數據元素之間的邏輯關系。
三、結構演算法
演算法的設計取決於數據(邏輯)結構,而演算法的實現依賴於採用的存儲結構。數據的存儲結構實質上是它的邏輯結構在計算機存儲器中的實現,為了全面的反映一個數據的邏輯結構,它在存儲器中的映象包括兩方面內容,即數據元素之間的信息和數據元素之間的關系。
不同數據結構有其相應的若干運算。數據的運算是在數據的邏輯結構上定義的操作演算法,如檢索、插入、刪除、更新和排序等。
㈡ 數據結構在講什麼
1.1 數據結構的概念數據結構是計算機科學與技術專業的專業基礎課,是十分重要的核心課程。所有的計算機系統軟體和應用軟體都要用到各種類型的數據結構。因此,要想更好地運用計算機來解決實際問題,僅掌握幾種計算機程序設計語言是難以應付眾多復雜的課題的。要想有效地使用計算機、充分發揮計算機的性能,還必須學習和掌握好數據結構的有關知識。打好「數據結構」這門課程的扎實基礎,對於學習計算機專業的其他課程,如操作系統、編譯原理、資料庫管理系統、軟體工程、人工智慧等都是十分有益的。1.1.1 為什麼要學習數據結構在計算機發展的初期,人們使用計算機的目的主要是處理數值計算問題。當我們使用計算機來解決一個具體問題時,一般需要經過下列幾個步驟:首先要從該具體問題抽象出一個適當的數學模型,然後設計或選擇一個解此數學模型的演算法,最後編出程序進行調試、測試,直至得到最終的解答。例如,求解梁架結構中應力的數學模型的線性方程組,該方程組可以使用迭代演算法來求解。由於當時所涉及的運算對象是簡單的整型、實型或布爾類型數據,所以程序設計者的主要精力是集中於程序設計的技巧上,而無須重視數據結構。隨著計算機應用領域的擴大和軟、硬體的發展,非數值計算問題越來越顯得重要。據統計,當今處理非數值計算性問題佔用了90%以上的機器時間。這類問題涉及到的數據結構更為復雜,數據元素之間的相互關系一般無法用數學方程式加以描述。因此,解決這類問題的關鍵不再是數學分析和計算方法,而是要設計出合適的數據結構,才能有效地解決問題。下面所列舉的就是屬於這一類的具體問題。[例1] 學生信息檢索系統。當我們需要查找某個學生的有關情況的時候;或者想查詢某個專業或年級的學生的有關情況的時候,只要我們建立了相關的數據結構,按照某種演算法編寫了相關程序,就可以實現計算機自動檢索。由此,可以在學生信息檢索系統中建立一張按學號順序排列的學生信息表和分別按姓名、專業、年級順序排列的索引表,如圖1.1所示。由這四張表構成的文件便是學生信息檢索的數學模型,計算機的主要操作便是按照某個特定要求(如給定姓名)對學生信息文件進行查詢。諸如此類的還有電話自動查號系統、考試查分系統、倉庫庫存管理系統等。在這類文檔管理的數學模型中,計算機處理的對象之間通常存在著的是一種簡單的線性關系,這類數學模型可稱為線性的數據結構。[例2] 八皇後問題。在八皇後問題中,處理過程不是根據某種確定的計演算法則,而是利用試探和回溯的探索技術求解。為了求得合理布局,在計算機中要存儲布局的當前狀態。從最初的布局狀態開始,一步步地進行試探,每試探一步形成一個新的狀態,整個試探過程形成了一棵隱含的狀態樹。如圖1.2所示(為了描述方便,將八皇後問題簡化為四皇後問題)。回溯法求解過程實質上就是一個遍歷狀態樹的過程。在這個問題中所出現的樹也是一種數據結構,它可以應用在許多非數值計算的問題中。[例3] 教學計劃編排問題。一個教學計劃包含許多課程,在教學計劃包含的許多課程之間,有些必須按規定的先後次序進行,有些則沒有次序要求。即有些課程之間有先修和後續的關系,有些課程可以任意安排次序。這種各個課程之間的次序關系可用一個稱作圖的數據結構來表示,如圖1.3所示。有向圖中的每個頂點表示一門課程,如果從頂點vi到vj之間存在有向邊<vi,vj>,則表示課程i必須先於課程j進行。由以上三個例子可見,描述這類非數值計算問題的數學模型不再是數學方程,而是諸如表、樹、圖之類的數據結構。因此,可以說數據結構課程主要是研究非數值計算的程序設計問題中所出現的計算機操作對象以及它們之間的關系和操作的學科。
㈢ 數據結構到底是講什麼的呢
相信你也知道俗話說:計算機程序=演算法+數據結構。數據結構就是講的怎樣在計算機程序中組織存儲批量數據,以及為什麼這樣組織。相同的一批數據,不同的組織方式(不同的數據結構)有不同的優缺點,有的利於查找(hash);有的利於排序(樹);有的利於插入、刪除(節點式鏈表)。在深入還有不同組織方式的查找、排序等等操作的時間、空間復雜度。
㈣ 《數據結構》是講什麼的啊
主要內容是介紹編程中常用的方法和演算法的優化,使程序的運行效率更高。
演算法的設計取決於數據(邏輯)結構,而演算法的實現依賴於採用的存儲結構。
數據的存儲結構實質上是它的邏輯結構在計算機存儲器中的實現,為了全面的反映一個數據的邏輯結構,它在存儲器中的映象包括兩方面內容,即數據元素之間的信息和數據元素之間的關系。不同數據結構有其相應的若干運算。數據的運算是在數據的邏輯結構上定義的操作演算法,如檢索、插入、刪除、更新和排序等。
樓主想要學習可以使用 嚴蔚敏和吳偉民主編的《數據結構》,清華大學出版社,很多高校用作教材。
㈤ 數據結構課到底學的是什麼
相信你也在網上查過此類問題了,我給你瘦點我自己的理解吧:
數據結構講的是數據在計算機數據處理中的邏輯結構與存儲結構及其基本應用操作。
邏輯結構是指數據運算是的邏輯表示,比如a[3]={1,2,3}表示一個元素為3個的一維數組。
存儲結構是指數據在計算機內存放的形式,比如a[3]={1,2,3}在計算機里怎麼存放呢?計算機可以分配一塊連續的存儲單元一次放入1、2、3這三個元素。當計算機運算調用到a[3]時,就直接從這塊連續的存儲單元調入對應的元素。計算機還可以分配幾塊不連續的存儲單元存放這三個元素,但每個存儲單元里除了存放數據1、2、3外必須還有其他輔助信息,比如,下一個存儲單元地址,是否結束等信息。這就是存儲結構。
數據結構還會涉及到數據結構的一些應用比如查找、排序、文件等。
數據結構是學習計算機知識的基礎學科,對於後續計算機知識的進一步學習很重要,如果想在計算機方面深造的話,建議好好學習!
給你附個數據結構經典教材的目錄:
數據結構(C語言版)(附光碟1張)(清華大學計算機系列教材)
目錄
第1章 緒論
1.1 什麼是數據結構
1.2 基本概念和術語
1.3 抽象數據類型的表現與實現
1.4 演算法和演算法分析
第2章 線性表
2.1 線性表的類型定義
2.2 線性表的順序表示和實現
2.3 線性表的鏈式表示和實現
2.4 一元多項式的表示及相加
第3章 棧和隊列
3.1 棧
3.2 棧的應有和舉例
3.3 棧與遞歸的實現
3.4 隊列
3.5 離散事件模擬
第4章 串
4.1 串類型的定義
4.2 串的表示和實現
4.3 串的模式匹配演算法
4.4 串操作應用舉例
第5章 數組和廣義表
5.1 數組的定義
5.2 數組的順序表現和實現
5.3 矩陣的壓縮存儲
5.4 廣義表的定義
5.5 廣義表的儲存結構
5.6 m元多項式的表示
5.7 廣義表的遞歸演算法第6章 樹和二叉樹
6.1 樹的定義和基本術語
6.2 二叉樹
6.2.1 二叉樹的定義
6.2.2 二叉樹的性質
6.2.3 二叉樹的存儲結構
6.3 遍歷二叉樹和線索二叉樹
6.3.1 遍歷二叉樹
6.3.2 線索二叉樹
6.4 樹和森林
6.4.1 樹的存儲結構
6.4.2 森林與二叉樹的轉換
6.4.3 樹和森林的遍歷
6.5 樹與等價問題
6.6 赫夫曼樹及其應用
6.6.1 最優二叉樹(赫夫曼樹)
6.6.2 赫夫曼編碼
6.7 回溯法與樹的遍歷
6.8 樹的計數
第7章 圖
7.1 圖的定義和術語
7.2 圖的存儲結構
7.2.1 數組表示法
7.2.2 鄰接表
7.2.3 十字鏈表
7.2.4 鄰接多重表
7.3 圖的遍歷
7.3.1 深度優先搜索
7.3.2 廣度優先搜索
7.4 圖的連通性問題
7.4.1 無向圖的連通分量和生成樹
7.4.2 有向圖的強連通分量
7.4.3 最小生成樹
7.4.4 關節點和重連通分量
7.5 有向無環圖及其應用
7.5.1 拓撲排序
7.5.2 關鍵路徑
7.6 最短路徑
7.6.1 從某個源點到其餘各頂點的最短路徑
7.6.2 每一對頂點之間的最短路徑
第8章 動態存儲管理
8.1 概述
8.2 可利用空間表及分配方法
8.3 邊界標識法
8.3.1 可利用空間表的結構
8.3.2 分配演算法
8.3.3 回收演算法
8.4 夥伴系統
8.4.1 可利用空間表的結構
8.4.2 分配演算法
8.4.3 回收演算法
8.5 無用單元收集
8.6 存儲緊縮
第9章 查找
9.1 靜態查找表
9.1.1 順序表的查找
9.1.2 有序表的查找
9.1.3 靜態樹表的查找
9.1.4 索引順序表的查找
9.2 動態查找表
9.2.1 二叉排序樹和平衡二叉樹
9.2.2 B樹和B+樹
9.2.3 鍵樹
9.3 哈希表
9.3.1 什麼是哈希表
9.3.2 哈希函數的構造方法
9.3.3 處理沖突的方法
9.3.4 哈希表的查找及其分析
第10章 內部排序
10.1 概述
10.2 插入排序
10.2.1 直接插入排序
10.2.2 其他插入排序
10.2.3 希爾排序
10.3 快速排序
10.4 選擇排序
10.4.1 簡單選擇排序
10.4.2 樹形選擇排序
10.4.3 堆排序
10.5 歸並排序
10.6 基數排序
10.6.1 多關鍵字的排序
10.6.2 鏈式基數排序
10.7 各種內部排序方法的比較討論
第11章 外部排序
11.1 外存信息的存取
11.2 外部排序的方法
11.3 多路平衡歸並的實現
11.4 置換一選擇排序
11.5 最佳歸並樹
第12章 文件
12.1 有關文件的基本概念
12.2 順序文件
12.3 索引文件
12.4 ISAM文件和VSAM文件
12.4.1 ISAM文件
12.4.2 VSAM文件
12.5 直接存取文件(散列文件)
12.6 多關鍵字文件
12.6.1 多重表文件
12.6.2 倒排文件
附錄A 名詞索引
附錄B 函數索引
參考書目
㈥ 數據結構是什麼意思希望講的通俗一點。
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索演算法和索引技術有關。bjl.website
㈦ 數據結構學習些什麼內容,學習數據結構有什麼意義,有哪些運用
數據結構學習的內容可以去網路。
作為一個已經進入公司程序員,我來告訴你學習數據結構有什麼用。
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。數據結構在編程中的重要作用具體表現在:
1、數據結構是一門綜合性較強的計算機軟體、程序設計理論和技術相結合的重要基礎知識。它主要討論抽象數據關系和演算法在計算機中的表示與實現,涉及到的數據在計算機中的表示、組織和處理 ,以及相應結構上的演算法設計和演算法性能上的分析技術。它所包含的知識與提倡的技術方法 ,無論對大家進一步學習計算機領域里的其他知識 ,還是對今後從事理論研究、應用開發及技術管理工作都起著重要的作用。
2、學習數據結構目的與要求是學會從問題入手 ,分析和研究計算機加工的數據結構特性 ,使大家能夠為他們應用的數據選擇適當的邏輯結構、存儲結構及其相應的操作演算法 ,並初步掌握演算法的性能分析技術。同時 ,學習中還要進行復雜的程序設計訓練 ,也培養了大家數據抽象能力、演算法構造性思維方法能力及邏輯思維能力 ,這些能力也是軟體系統開發過程中非常重要的一種創造性思維活動。
3、數據結構和程序設計語言本身雖然沒有多大的聯系 ,但數據結構是一種抽象數據 ,是實用程序語言去描述數據結構 ,通過程序設計語言可以將它在計算機中進行實現。學會了數據結構,就會用所學知識對實踐任務進行充分分析、抽象 ,建立與之相適應的模式 ,使問題最終在計算機上得以實現。在這個過程中 ,大家不僅對所學知識加深了理解 ,更重要的是培養了大家分析問題、解決問題的能力 ,這對充分發揮大家的實踐能力、創造能力起著重要的作用 ,也提高大家演算法設計和程序設計能力。
所以說,數據結構在軟體編程中有著舉足輕重的作用,可以說一個系統的工程離不開數據結構的支持。一個優秀的軟體開發人員,數據結構是其必備的基礎知識。
㈧ 數據結構主要講的什麼
主要講數據在內存裡面的組織方式. 比如 堆,棧,隊列,鏈表,順序表,二叉樹, 樹,圖