觀衆老爺好,今天講的是數據結構是什麼?前幾期都有提到數據結構,但隻是概念性的講述,這期我們深入去剖析數據結構到底怎麼吃的?很多學編程的人必備的一本書就是算法與數據結構,裡面很多介紹的其實大多是算法,反而數據結構講述的很少,這就導緻很多學習編程的人對編程一知半解,無從下手,觀衆老爺可能在這時嘀咕了,你個英文不達标的小編在這裡大放厥詞。觀衆老爺請不要生氣,接下來小編會解釋,看看小編為何有如此一說。
在座的觀衆老爺請拿出花生瓜子,飲料!當然喜歡喝茶也是可以的,喝酒也行,不過盡量要保持自己狀态良好哈!
在座的觀衆老爺有沒有學過編程的?小編不知道,這裡先假設有,在我們學習編程有面向對象(OPP)這一種編程思想,裡面有這麼一句話萬物皆是對象。當然此對象不是彼"對象"。小編也不能給觀衆老爺變出個伴侶出來。
在座的觀衆老爺有沒畫家?這裡也假設有,在我們繪畫時,觀察一個物體,了解整個事物的線條、輪廓、色彩,故事,情感,這就是面對對象分析的思想。
畫家用線條、輪廓、色彩在紙上表述自己獨有的情感,詩人用詞句來描述自己的所見所聞所感,舞蹈家用身體的語言抒發自己的情感。數學家、物理學家用數據和公式去探索與描述世界。
程序員的世界更接近數學家和物理學家。每個事物都有它的特征和屬性。我們要嘗試用數據描述他,這就是面對對象最基本的思想。
我們面對一個事物,想要了解它,首先去分析它長什麼樣子,圓的還是方的,長多少寬多少高多少,有什麼作用,能吃嗎?能喝嗎?(小編是個吃貨第一時間就想到可不可以吃),對我們有沒有益處,會不會傷害我們,什麼材質的,是鐵?是塑料?還是紙?它會不會動?等等一些列與這個事物有關的屬性和特征!當我們用編程語言描述這個事物時就要建立一些變量和函數進行表達,比如面對"張三"這個人,張三有以下特征:
姓名 張三
性别 男
年齡 30
身高189cm
體重 70kg
學曆 小學文化
婚姻狀态 已結婚
身份證号 3403221989120277xx
技能 維修電腦,拉二胡
我們已經得到張三的特征,那我們肯定需要用編程語言描述張三了,具體如下(僞代碼描述觀衆老爺不要計較語法問題):
Class People {
String name = 張三;
String sex = 男;
Int age =30;
Int height =189;
Int weight =70;
String diploma = 小學文化;
Bool marriage =true;
String ID =3403221989120277xx;
////接下來是技能這裡用函數表達
Int ComputerRepair () {
////修理電腦函數實現
}
Int PullErhu () {
////拉二胡函數實現
}
}
到了這裡觀衆老爺知道什麼是面向對象和數據結構了吧,當然這隻是一個簡單的數據結構,當我們學到具體的編程時,再講鍊表,字典等等比較常用的複雜的數據結構。
面向對象分析思想非常重要,在我們想編程時首先就要分析我們如何進行編寫軟件,這個軟件要實現什麼功能,功能分幾塊,這幾個功能裡會用哪些函數,需要建立什麼樣的數據結構,功能裡需要我們用什麼樣的算法實現等等,都是我們在開始編程前要分析好,制定大緻的框架,函數命名規則,變量命名規則,實現人員安排,算法編寫安排等等!就像導演拍電視電影一樣,很多劇情需要誰演,如何演,需要什麼道具,需要什麼鏡頭等等都要有詳細的規劃和大綱制定!
到了這裡我們已經跨入到編程的門裡了,希望觀衆老爺能再進一步,編程的世界會逐漸開放,你的關注收藏點贊都是我成長的動力,觀衆老爺下期再會!
,