1. 程式人生 > >總結一:資料結構-緒論

總結一:資料結構-緒論

一、初識資料結構

         資料機構是一門研究非數值計算的程式設計問題中計算機的操作物件已經它們之間的關係和操作等的學科。

         描述非數值計算問題的數學模型不在是數學方程,而是諸如表、樹和圖之類的資料結構。例如:表:圖書管理系統,一本書可有書名、作者名、分類、出版社和出版時間,這些資訊就構成了表;樹:井字棋(3*3的棋盤,畫圈和畫叉),對於一個棋局,假設還有四個空位置沒有下棋子,那下一個棋局會有四種可能,這四種可能性,每種可能性又都有三種可能性,直到有獲勝的一方,遊戲結束,這就是一棵“樹”;圖:多叉路口交通燈的管理問題。

二、基本概念

         1. 資料機構:資料結構是相互之間存在一種或多種特定關係的資料元素的集合;

         2. 集合:結構中的資料元素之間除了“同屬於一個集合”的關係外,別無其他關係;

         3. 線性結構:結構中的資料元素之間存在一個對一個的關係;

         4. 樹形結構:結構中的資料元素之間存在一個對多個的關係;

         5. 圖狀結構:結構中的資料元素之間存在多個對多個的關係。

三、演算法

      3.1 演算法的概念

                   演算法是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示一個或多個操作。

      3.2 演算法的重要特徵

                   1. 有窮性:一個演算法必須重視在執行有窮步之後結束,且每一步都是在有窮的時間內完成。

                   2. 確定性:演算法中每一條指令必須有明確的含義,讀者不能產生二義性。並且,在任何條件下,演算法只有唯一的一條執行路徑,即對於相同的資料只能得出相同的輸出。

                3. 可行性:一個演算法是能行的,即演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現的。

                  4. 輸入:一個演算法有零個或多個的輸入,這些輸入取自於某個特定的物件的集合。

                   5. 輸出:一個演算法有一個或多個的輸出,這些輸出是通輸入有這某些特定關係的量。

      3.3 演算法設計的要求

                   1. 正確性:演算法應當滿足具體問題的需求。

                   2. 可讀性:演算法主要是為了人的月的和交流,其次才是機器的執行。

                   3. 健壯性: 當輸入資料非法時,演算法也能適當的做出反應或進行處理,而不會產生莫名其妙的輸出結果。

                   4. 效率與低儲存量需求:通俗的說,效率指的是演算法執行的時間;儲存量指的是演算法執行過程中需要的最大的儲存空間。常用的衡量效率和低儲存量的方法分別為時間複雜度和空間複雜度。