概述
資料結構是什么?
-
資料結構是一門
研究組織資料方式的學科,有了編程語言也就有了資料結構, -
資料結構是相互之間存在一種或多種特定關系的資料元素的集合
資料結構的起源
早期人們都把計算機理解為數值計算工具,就是感覺計算機當然是用來計算的,所以計算機解決問題,應該是先從具體問題中抽象出一個適當的資料模型,設計出一個解此資料模型的演算法,然后再撰寫程式,得到一個實際的軟體,可現實中,我們更多的不是解決數值計算的問題,而是需要一些更科學有效的手段(比如表、樹和圖等資料結構)的幫助,才能更好地處理問題,所以資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關系和操作等相關問題的學科,
1968年
《計算機程式設計藝術》第一卷《基本演算法》中,較系統地闡述了資料的邏輯結構和存盤結構及其操作,開創了資料結構的課程體系,
1968年
資料結構作為一門獨立的課程,在計算機科學的學位課程中開始出現,計算機相關專業的學生開始學習《資料結構》,
70年代初
出現大型程式,軟體相對獨立,結構程式設計成為程式設計方法學的主要內容,人們越來越重視“資料結構”,
認為程式設計的實質是對確定的問題選擇一種好的結構,加上設計一種好的演算法,可見,資料結構在程式設計當中占據了重要的地位,
基本概念和術語
1.資料:描述客觀事物的符號,能夠輸入到計算機中,被計算機識別并操作
資料不僅僅包括整型、實型等數值型別,還包括字符及聲音、影像、視頻等非數值型別,
- 對于整型、實型等數值型別,可以進行數值計算
- 對于字符資料型別,就需要進行非數值的處理
- 對于聲音、影像、視頻等其實是可以通過編碼的手段變成字符資料來處理的
2.資料元素:是組成資料的、有一定意義的基本單位,在計算機中統稱作為整體處理(也稱為記錄)
3.資料項:資料不可分割的最小單位
在資料結構這門課程中,我們把資料項定義為最小單位,是有助于我們更好地解決問題,所以,記住了,資料項是資料的最小單位,
但真正討論問題時,資料元素才是資料結構中建立資料模型的著眼點,
就像我們討論一部電影時,是討論這部電影角色這樣的“資料元素”,而不是針對這個角色的姓名或者年齡這樣的“資料項”去研究分析,
4.資料物件:性質相同的資料元素的集合,是資料的子集
在實際應用中,處理的資料元素通常具有相同性質,在不產生混淆的情況下,我們都將資料物件簡稱為資料,
資料結構與演算法的關系?
資料結構是演算法的基礎,
程式 = 資料結構 + 演算法
資料結構分為兩大類
線性結構
- 陣列
- 鏈表
- 堆疊
- 佇列
非線性結構
- 樹
- 堆
- 圖
- 散串列
線性結構 是最常用的資料結構
-
特點是資料元素之間 存在
一對一的線性關系- 順序儲存結構(陣列/順序表)
- 鏈式儲存結構(鏈表)
十大常用演算法
- 二分查找(非遞回)
- 分治演算法
- 動態規劃
- 貪心演算法
- KMP演算法
- 馬踏棋盤演算法
- 普里姆演算法
- 迪杰斯特拉演算法
- 佛洛伊演算法
- 克魯斯卡爾演算法
本系列筆記主要按尚硅谷教程的講解順序,使用Java代碼實作各種資料結構,同時參考《大話資料結構》一些理論知識,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33854.html
標籤:其他
