第一章 資料結構和演算法概述

2021-10-20 03:58:41 字數 1247 閱讀 2556

(1)資料data 結構(structure)是一門研究組織資料方式的學科,有了程式語言也就有了資料結構。學好資料結構可以編寫出更加漂亮,更加有效率的**。

(2)要學習好資料結構就要多多考慮如何將生活中遇到的問題,用程式去實現解決。

(3)程式= 資料結構+ 演算法

(4)資料結構是演算法的基礎, 換言之,想要學好演算法,需要把資料結構學到位。

1.2.1 字串替換問題

小結:需要使用到單鏈表資料結構

1.2.2 乙個五子棋程式

如何判斷遊戲的輸贏,並可以完成存檔退出和繼續上局的功能

(1)棋盤二維陣列=>(稀疏陣列)-> 寫入檔案【存檔功能】

(2)讀取檔案-》稀疏陣列-》二維陣列-》棋盤【接上局】

1.2.3 約瑟夫(josephu)問題(丟手帕問題)

(1) josephu 問題為:設編號為1,2,… n 的n 個人圍坐一圈,約定編號為k(1<=k<=n)的人從1 開始報數,數到m 的那個人出列,它的下一位又從1 開始報數,數到m 的那個人又出列,依次類推,直到所有人出列為止,由此產生乙個出隊編號的序列。

(3)小結:完成約瑟夫問題,需要使用到單向環形鍊錶這個資料結構

1.2.4 其它常見演算法問題

(1)修路問題=> 最小生成樹(加權值)【資料結構】+ 普利姆演算法

(2)最短路徑問題=> 圖+弗洛伊德演算法

(3)漢諾塔=> 分支演算法

(4)八皇后問題=> 回溯法

資料結構包括:線性結構和非線性結構。

1.3.1 線性結構

線性結構作為最常用的資料結構,其特點是資料元素之間存在一對一的線性關係

線性結構有兩種不同的儲存結構,即順序儲存結構(陣列)和鏈式儲存結構(鍊錶)。順序儲存的線性表稱為順序表,順序表中的儲存元素是連續的

鏈式儲存的線性表稱為鍊錶,鍊錶中的儲存元素不一定是連續的,元素節點中存放資料元素以及相鄰元素的位址資訊

線性結構常見的有:陣列、佇列、鍊錶和棧,後面我們會詳細講解。

1.3.2 非線性結構

非線性結構包括:二維陣列,多維陣列,廣義表,樹結構,圖結構

資料結構概述 第一章 緒論

用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示 資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構 和資料處理 乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法 資料結構課程主要討論資料表示和資料處理的基本方法...

第一章 資料結構和演算法 (1)

問題的引入 本書的目的 本書主要講解的內容 演算法分析 本章內容 德克薩斯州達拉斯市方圓500英里之內 有多少個城市 的人口超過25萬?乙個公司裡 有多少人 每年的年收入 超過10萬美元?用不超過1000英里長的電纜 是否能把 所有的 使用者 都連線起來?現在就正確回答諸如這樣的問題 是不可能的,因...

第一章資料結構和演算法簡介

資料是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並能被電腦程式處理的符號的總稱.資料結構是相互之間存在一種或多種特定關係的資料元素的結合。資料結構 資料元素 關係 結構 資料在計算機中的表示稱為資料的儲存結構 任何乙個演算法的設計取決於選定的邏輯結構,而演算法的實現依賴於採用的儲存結...