算法与数据结构(part3)--数据结构概述
學習筆記,僅供參考,有錯必糾
文章目錄
- 算法與數(shù)據(jù)結(jié)構(gòu)--基于python
- 數(shù)據(jù)結(jié)構(gòu)
- 什么是數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)結(jié)構(gòu)的概念
- 抽象數(shù)據(jù)類型(ADT)
算法與數(shù)據(jù)結(jié)構(gòu)–基于python
數(shù)據(jù)結(jié)構(gòu)
什么是數(shù)據(jù)結(jié)構(gòu)
我們?yōu)榱私鉀Q問題,需要將數(shù)據(jù)保存下來,然后根據(jù)數(shù)據(jù)的存儲方式來設計算法,數(shù)據(jù)的存儲方式不同,會導致我們需要用不同的算法進行處理數(shù)據(jù)。我們希望算法解決問題的效率越快越好,于是我們就需要考慮數(shù)據(jù)究竟如何保存的問題,這就是數(shù)據(jù)結(jié)構(gòu)。
如果說算法是一種解決問題的思路,那么數(shù)據(jù)結(jié)構(gòu)就是思路的載體。
數(shù)據(jù)結(jié)構(gòu)的概念
數(shù)據(jù)是一個抽象的概念,將其進行分類后得到程序設計語言中的基本類型。如:int,float,char等。數(shù)據(jù)元素之間不是獨立的,它們存在特定的關(guān)系,這些關(guān)系便是結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)指數(shù)據(jù)對象中數(shù)據(jù)元素之間的關(guān)系。
Python給我們提供了很多現(xiàn)成的數(shù)據(jù)結(jié)構(gòu)類型,這些系統(tǒng)自己定義好的,不需要我們自己去定義的數(shù)據(jù)結(jié)構(gòu)叫做Python的內(nèi)置數(shù)據(jù)結(jié)構(gòu),比如列表、元組、字典而有些數(shù)據(jù)組織方式,Python系統(tǒng)里面沒有直接定義,需要我們自己去定義實現(xiàn)這些數(shù)據(jù)的組織方式,這些數(shù)據(jù)組織方式稱之為Python的擴展數(shù)據(jù)結(jié)構(gòu),比如棧,隊列等。
抽象數(shù)據(jù)類型(ADT)
抽象數(shù)據(jù)類型的含義是指一個數(shù)學模型以及定義在此數(shù)學模型上的一組操作。即把數(shù)據(jù)類型和數(shù)據(jù)類型上的運算捆在一起,進行封裝。抽象數(shù)據(jù)類型也是一種數(shù)據(jù)類型,只不過是一種經(jīng)過封裝的數(shù)據(jù)類型,就像python中的列表,就是一種抽象數(shù)據(jù)類型。
最常用的五種數(shù)據(jù)運算:插入、刪除、修改、查找、排序.
- 舉個例子
比如說,我們定義一個工具類MyTools:
class MyTools:def add():passdef delete():passdef sort():pass這時,我們就可以把這個自定義類看做一個抽象數(shù)據(jù)類型。
如果有一天,某人要我們定義一個ADT,其實就是要我們寫一個自定義類。
總結(jié)
以上是生活随笔為你收集整理的算法与数据结构(part3)--数据结构概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法与数据结构(part2)--Pyth
- 下一篇: TP-Link TL-WR890N 无线