程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

少兒Python編程6-計算機數據結構和算法

編輯:Python

數據結構是一門研究非數值計算的程序設計問題中的操作對象,以及它們之間的關系和操作等相關問題的學課。

計算機處理問題的過程,其實就是處理數據的過程,計算機解決一個具體問題的步驟[1]:

(1)分析問題,確定數據模型。

(2)設計相應的算法。

(3)編寫程序,運行並調試程序直至得到正確的結果。

程序設計 = 數據結構 + 算法

(Program = Data Structure + Algorithm)

數據結構(Data Structure) 是數據的組織結構,用來組織、存儲數據。

算法(Algorithm) 就是解決問題的方法或者過程。

一、從數據中抽象出數據結構

處理問題需要從數據入手來分析,進而得到解決問題的方法,首先對數據結構化。

數據:是指所有能輸入到計算機並被計算機程序處理的符號的介質的總稱,是用於輸入電子計算機進行處理,具有一定意義的數字字母、符號和模擬量等的統稱。比如在游戲當中你擁有的人物角色、裝備、等級、金幣等,這些都是數據,而且這些數據分為多種不同類型存儲在計算機裡。

數據元素:是指按某一標准對數據進行歸類而劃定的一個最小單位,它包含了一定的意義,可作為一個整體處理。比如人類,人就是數據元素。

數據項:是數據元素的單個成員項,也就是說一個數據元素是由若干個數據項組成的。比如人這個數據元素,可以有眼睛、耳朵等數據項,也可以有姓名、年齡等數據項。

多個有關系的數據項組成一個數據元素,眾多的數據元素組成了大量的數據。

數據對象:我們處理分析數據的時候,一般會從大量數據中選取性質相同的有限個數據元素,組成一個集合,作為研究對象,稱為數據對象。數據對象是性質相同的有限個數據元素的集合,它是數據的一個子集。如大寫字母數據對象是集合C={'A','B','C',…,'Z'};1~100的整數數據對象是集合N={1,2,…,100}。

數據結構:是指所涉及的數據元素以及數據元素之間的關系,可以看作是相互之間存在著特定關系的數據元素的集合。

比如考試的排名,老師會按照成績多少做成一個順序排列的表格,從第一名到最後一名,按順序排列下來。其實這就是一種數據結構,叫做順序表。數據對象就是每個人的排名情況,包括名次、姓名、成績等等。結構就是名次的順序排列,每個人只有一個前名次和後名次(第一名和最後一名除外)。

數據結構分別為邏輯結構、存儲結構(物理結構)和數據的運算。

二、數據結構的邏輯結構

邏輯結構是指數據元素之間的相互關系,它是獨立於計算機的。通常分為四類結構:

集合:結構中的數據元素除了同屬於一種類型外,別無其它關系。

線性結構:結構中的數據元素之間存在一對一的關系。定義了線性關系。

樹型結構:結構中的數據元素之間存在一對多的關系。定義了層次關系。

圖狀結構:結構中的數據元素之間存在多對多的關系。定義了網狀關系。

1.集合結構:單個數據元素之間沒有任何關系(一盒糖)。

2.線性結構:定義了線性關系,數據元素存在一對一的相互關系。(排隊)

3.樹形結構:定義了層次關系,數據元素存在一對多的相互關系。(家庭成員)

4.圖形結構:定義了網狀關系,數據元素存在多對多的相互關系。(公交站)

三、數據結構的存儲結構

也就是元素如何存儲的,存儲結構又稱為物理結構。它是面向程序員的。存儲結構分為順序結構,鏈式結構,索引結構,散列結構。

1.順序存儲結構:借助數據元素之間的相對位置來表示元素之間的邏輯結構

2.鏈式存儲結構:借助數據元素之間的元素的指針表示數組元素的邏輯結構

3.散列存儲結構:順序存儲+算列

4.索引存儲結構:順序存儲+索引

邏輯結構與存儲結構關系圖:

四、數據的運算[3]

1.數據的運算

是在數據的邏輯結構上定義的操作算法,如檢索、插入、刪除、更和排序等。例如,對於高等數學成績表這種數據結構,可以進行一系列的運算:增加一個學生成績記錄、刪除一個學生成績記錄、求所有學生的平均分、查找序號為i的學生分數等。

2.數據類型

指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。可將數據類型分為兩類:

原子類型:不可以再分解的基本類型,整型、實型、字符型等。

結構類型:由若干個類型組合而成,可以再分解。

五、參考資料

[1]:https://baijiahao.baidu.com/s?id=1687302279709228125

[2]:數據結構:八種數據結構大全_緑水長流*z的博客-CSDN博客_數據結構

[3]: https://blog.csdn.net/heyuchang666/article/details/49891635


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved