- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
非線性迴圈
資料結構理論與實務 – 以C語言實作Data Structures in C:Concept and Implementation 課程名稱:資料結構 指導老師:吳弘翔 目錄 第1章:資料結構導論(Introduction) 第2章:陣列與結構(Arrays and Structures) 第3章:指標與字串(Pointers and Strings) 第4章:鏈結串列(Linked Lists) 第5章:堆疊(Stacks) 目錄 第6章:佇列(Queues) 第7章:樹與二元樹(Trees and Binary Trees) 第8章:圖形結構(Graphs) 第9章:資料排序(Sorting) 第10章:資料搜尋(Searching) 第1章 資料結構導論(Introduction) 1-1 資料結構的基礎 1-2 程式設計與演算法 1-3 抽象資料型態ADT 1-4 C語言的模組化程式設計 1-5 遞迴函數 1-6 程式的分析方法 1-1 資料結構的基礎-說明 「資料結構」(Data Structures)是一門計算機科學的基礎學科,其目的是研究程式使用的資料在電腦記憶體的儲存方式,以便撰寫程式處理問題時,能夠使用最佳的資料結構,並且提供一種策略或方法來有效率的善用這些資料,以便達到下列目的,如下所示: 程式執行速度快。 資料佔用最少的記憶空間。 更快速的存取這些資料。 1-1 資料結構的基礎-圖例 上述轉換資料的方法策略就是「演算法」(Algorithms)。 演算法和資料結構的關係非常的密切,因為程式使用的演算法和資料結構都會影響程式的執行效率,換句話說,演算法加上資料結構就等於程式,如下所示: 「演算法」 + 「資料結構」 = 「程式」 1-2 程式設計與演算法 1-2-1 程式設計的過程 1-2-2 演算法 1-2-3 模組化 1-2-4 由上而下的設計方法 1-2-1 程式設計的過程-階段 程式設計是將需要解決的問題轉換成程式碼,程式碼不只能夠在電腦上正確的執行,而且可以驗證程式執行的正確性,程式設計的過程可以分成5個階段,如下所示: 需求(Requirements) 設計(Design) 分析(Analysis) 撰寫程式碼(Coding) 驗證(Verification) 1-2-1 程式設計的過程-需求 需求(Requirements):程式設計的需求是在了解問題本身,以便確切獲得程式需要輸入的資料和其產生的結果,如下圖所示: 1-2-1 程式設計的過程-設計 設計(Design):在了解程式設計的需求後,我們就可以開始找尋解決問題的方法和策略,簡單的說,設計階段就是找出解決問題的步驟,如下圖所示: 1-2-1 程式設計的過程-分析 分析(Analysis):在解決需求時,只有一種解決方法嗎?例如:如果有100個變數,我們可以宣告100個變數來儲存資料,或是使用陣列來儲存,在分析階段是將所有可能解決問題的演算法都寫下來,然後分析比較那一種方法比較好,選擇最好的演算法來撰寫程式。 1-2-1 程式設計的過程-撰寫 撰寫程式碼(Coding):現在就可以開始使用指定的程式語言來撰寫程式碼,以本書為例是使用C程式語言,在實際撰寫程式時,可能發現另一種方法比較好,因為設計歸設計,在實際撰寫程式時才能真正發現其優劣,如果這是一個良好的設計方法,就算改為其它方法也不會太困難。 1-2-1 程式設計的過程-驗證 驗證(Verification):驗證是證明程式執行的結果符合需求的輸出資料,在這個階段可以再細分成三個部分: 證明:執行程式時需要證明它的執行結果是正確的,程式符合所有輸入資料的組合,程式規格也都符合演算法的需求。 測試:程式需要測試各種可能情況、條件和輸入資料,以測試程式執行無誤,如果有錯誤產生,就需要除錯來解決程式問題。 除錯:如果程式無法輸出正確的結果,除錯是在找出錯誤的地方,我們不但需要找出錯誤,還需要決定如何更正它。 1-2-2 演算法-定義 演算法是完成目標工作的一組指令,這組指令的步驟是有限的。除此之外,演算法還必須滿足一些條件,如下所示: 輸入(Input):沒有或數個外界的輸入資料。 輸出(Output):至少有一個輸出結果。 明確性(Definiteness):每一個指令步驟都十分明確,沒有模稜兩可。 有限性(Finiteness):這組指令一定結束。 有效性(Effectiveness):每一個步驟都可行,可以追蹤其結果。 1-2-2 演算法-方法 演算法只是將解決問題步驟詳細的寫出來,所以並沒有固定的方式,基本上只要能夠描述這組指令的執行過程即可,常用的方式如下所示: 一般語言文字:直接使用文字描述來說明執行的步驟。 虛擬碼(Pseudo Code):趨近程
您可能关注的文档
- 肺結核傳染的事實.ppt
- 妈妈心妈妈树.ppt
- 設計組織的結構.ppt
- 《引导中职生做尚德守法的好学生》.-广东技术师范学院.ppt
- 我忘记了把这件事告诉新同事.ppt
- 学生励志专场培训课件《经赢你的大学》.ppt
- 校園霸凌案例與處置.ppt
- 雙重特教需求學生的學習調整方式.ppt
- 性別平等教育法.ppt
- 走向未来的中学生.ppt
- DB44T827-2010 广东老字号评定规范.pdf
- QNQ1102-2023 化工材料-蚀刻底漆.pdf
- TCHTS-高速公路车辆救援服务评价指南.pdf
- TNTRPTA0008-2020 蓝孔雀规模化生态养殖场消毒技术规程.pdf
- 域名服务安全状态检测要求.pdf
- DB4403T-救灾物资储备标准指引.pdf
- DB44T1100.6-2015 人造石试验方法 第6部分 氙灯老化测试.pdf
- DB44T1708-2015 木制文具中含氯苯酚的测定 气相色谱-质谱法.pdf
- TGXGFA-地理标志农产品 靖西大果山楂及编制说明.pdf
- CECS291-2011 波纹腹板钢结构技术规程.pdf
最近下载
- 翼状胬肉的护理查房-PPT.ppt
- 2022年应急管理工作应知应会知识竞赛题库(含答案).pdf
- 全民微信时代增进了VS减弱了人与人之间的交流辩论赛 正方辩词一辩、二辩、三辩、四辩发言稿.docx
- 超星网课尔雅《人人学点营销学》尔雅答案2022章节测试答案.docx
- 2019CSP-J NOIP普及组初赛C++试卷.pdf VIP
- 2024年《城镇燃气管理条例题库》考试题库(含答案).pdf VIP
- 必威体育精装版浙教版八年级上册劳动技术 项目三 任务二《打蛋器的制作》课件(课件).pptx
- 纪律意识方面存在不足及措施4篇.pdf
- 消防安全教育PPT课件.pptx VIP
- 《新中国成立75周年》全文课件.ppt VIP
文档评论(0)