很多同學(xué)在產(chǎn)品入門的時候都會考慮到一個問題——產(chǎn)品經(jīng)理需要懂技術(shù)嗎?這個問題也許沒有準確的答案,但是一個懂技術(shù)的產(chǎn)品經(jīng)理確實有很明顯的優(yōu)勢。
- 一方面產(chǎn)品經(jīng)理在日常工作中,接觸到最多的一類人,就是程序員,懂技術(shù)能減少與技術(shù)同學(xué)的溝通成本;
- 另一方面,許多成功的產(chǎn)品經(jīng)理都是技術(shù)出身,因為可以從更全面的維度去規(guī)劃產(chǎn)品的未來。
所以懂技術(shù)是產(chǎn)品經(jīng)理的加分項,這是毋庸置疑的。為了經(jīng)營好這一個加分項,產(chǎn)品經(jīng)理要為自己的技術(shù)能力定制一個修行計劃。
本文將與大家分享數(shù)據(jù)類型相關(guān)的基礎(chǔ)知識,希望可以共同學(xué)習(xí),共同進步。
一、基礎(chǔ)名詞理解
- 數(shù)據(jù):對客觀事物的符號表示,在計算機科學(xué)中指所有能輸入到計算機中,并被計算機程序處理的符號的總稱。
- 數(shù)據(jù)項:是組成數(shù)據(jù)對象的不可分割的最小單位。
- 數(shù)據(jù)元素:是數(shù)據(jù)的基本單位,在計算機程序中通常作為一個整體進行處理。數(shù)據(jù)元素可以由數(shù)據(jù)項組成。
- 數(shù)據(jù)對象:性質(zhì)相同的數(shù)據(jù)元素的集合,是一個數(shù)據(jù)的一個子集。
為了更清晰地對以上幾個名詞進行理解,舉一個簡單的例子:
以學(xué)生為例,這里引進幾個名詞,某班級,學(xué)生張三,學(xué)生張三的學(xué)號與姓名。在這個例子中,學(xué)生張三就是一個數(shù)據(jù)元素,它由張三的學(xué)號與姓名組成。那么學(xué)號、姓名就是數(shù)據(jù)項,張三和某班級的其他學(xué)生性質(zhì)相同,并且共同組成了這個某班級。那么某班級就是學(xué)生數(shù)據(jù)元素的集合,即一個數(shù)據(jù)對象,可以表示為:班級={學(xué)生1,學(xué)生2,學(xué)生3……..}。
了解了基本的數(shù)據(jù)概念,再來看看數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)類型:
- 數(shù)據(jù)結(jié)構(gòu):相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
- 存儲結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)在計算機中的表示(映射),即數(shù)據(jù)的物理結(jié)構(gòu)。
- 數(shù)據(jù)類型:一個值的集合和定義在這個值集上的一組操作的總稱。
- 抽象數(shù)據(jù)類型:ADT,一個數(shù)學(xué)模型以及定義在該模型上的一組操作。
還是以學(xué)生為例,再引進一個新的名詞——學(xué)生名單表。
學(xué)生名單表就屬于數(shù)據(jù)結(jié)構(gòu)的一種——表結(jié)構(gòu)。學(xué)生信息中可能存在年齡,以數(shù)字來進行描述,那么年齡就可能是整型這種數(shù)據(jù)類型的一個字段。
總結(jié)來說,數(shù)據(jù)結(jié)構(gòu)定義了一組按照某些關(guān)系結(jié)合在一起的數(shù)組元素,數(shù)據(jù)類型不僅定義了一組帶結(jié)構(gòu)的數(shù)據(jù)元素,而且還在其上定義了一組操作。
以下為基本的數(shù)據(jù)類型整理:
![](https://image.woshipm.com/wp-files/2018/04/bZj3tpME34WRfKgu0nn9.jpeg)
二、基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)類型整理
1.? 線性表
![](https://image.woshipm.com/wp-files/2018/04/97RpfRd3ImPKb9RYkhKT.jpg)
定義:線性表是最常用且是最簡單的一種數(shù)據(jù)結(jié)構(gòu)。形如:a1、a2、a3…an,這樣含有有限的數(shù)據(jù)序列,我們就稱之為線性表。
相關(guān)概念:
- 線性鏈表:用一組任意的存儲單元存儲線性表的數(shù)據(jù)元素。
- 數(shù)據(jù)域:存儲數(shù)據(jù)元素的域。
- 指針域:存儲直接后繼存儲位置的域。
舉例理解:一年12個月,就可表示為線性表的形式,因為每個月只有一個直接前驅(qū)和一個直接后繼。線性表的順序結(jié)構(gòu)表示的時候,它的最大的缺點就是在插入和刪除的時候,需要移動大量的元素。
2.? 棧和隊列
![](https://image.woshipm.com/wp-files/2018/04/VcA4itMAXBjWHp8DO1yE.jpeg)
![](https://image.woshipm.com/wp-files/2018/04/B8U0bCQkBOHDQ5w0Wq7Q.jpeg)
定義:
- 棧是指限定僅在表尾進行插入或者刪除操作的線性表,表尾端稱為棧頂,表頭端稱為棧底。
- 隊列是指只允許在一端進入插入,另一端進行刪除的線性表,插入端稱為隊尾,刪除端稱為隊頭。
區(qū)別表現(xiàn)為:棧為“后進先出”,隊列為“先進先出”。
舉例理解:棧和隊列都是我們在進行產(chǎn)品邏輯設(shè)計時經(jīng)常使用到,比如:我們進行一個有層級順序的頁面設(shè)計時,設(shè)定順序為:頁面1->頁面2->頁面3,當(dāng)用戶在頁面3 時,點擊返回,必須先返回頁面2,才能繼續(xù)返回到頁面1,這就是棧的設(shè)計設(shè)計思維。
3. 串
定義:串是零個或多個字符組成的有限序列。一般記S=‘a(chǎn)1a2….an ’其中,S是串名,單引號括起的字符序列是串值;ai(1〈=i〈=n)可以是字母,數(shù)字或其它字符。
相關(guān)概念:
- 串的長度:串中所包含的字符個數(shù)為該串的長度。
- 空串:長度為零的串稱為空串,它不包含任何字符。
舉例理解:串多用于字段的聯(lián)結(jié)或者分解。舉例來說:常見的綜藝名稱”綜藝名+更新時間“,就是通過將綜藝名字段與綜藝更新時間字段這兩個串進行聯(lián)結(jié),最終展現(xiàn)給用戶一個合并形成的綜藝名稱。
4 . 樹
![](https://image.woshipm.com/wp-files/2018/04/SnC4gMHAREAKxefFlfoI.jpeg)
定義:樹形結(jié)構(gòu)是非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n>=1)個有限節(jié)點組成一個具有層次關(guān)系的集合。
相關(guān)概念:
- 度:結(jié)點擁有的子樹的數(shù)量稱為樹的度。
- 二叉樹:每個結(jié)點至多有2個子樹且子樹有左右之分,次序不能顛倒,這樣的樹稱為二叉樹。
舉例理解:比較常見的微信公眾號的頂部菜單和視頻網(wǎng)站的分類導(dǎo)航,就采用了樹的設(shè)計思維。
三、總結(jié)
對于非技術(shù)型產(chǎn)品經(jīng)理而言,不需要深入了解每個數(shù)據(jù)結(jié)構(gòu)的函數(shù)、方法,但是了解并理解數(shù)據(jù)結(jié)構(gòu)的基本概念與特點,不但可以在產(chǎn)品邏輯、業(yè)務(wù)流程設(shè)計時,借鑒數(shù)據(jù)結(jié)構(gòu)相關(guān)的設(shè)計思維,而且可以減少和技術(shù)同學(xué)溝通的成本,更好地相互理解。
以上是本次的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)筆記,可能會有一些不合理的地方,希望共同學(xué)習(xí)共同進步。
參考教材:數(shù)據(jù)結(jié)構(gòu)(C語言版)
作者:方小白,2年互聯(lián)網(wǎng)產(chǎn)品經(jīng)驗,專注用戶增長與會員運營。
本文由@方小白 原創(chuàng)發(fā)布于人人都產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于 CC0 協(xié)議
很不錯的筆記,能不能在數(shù)據(jù)類型表中,補充下栗子說明下用法
如果產(chǎn)品懂這么多,我覺得很牛逼。我表示完全不懂在講啥子
兄弟這是C語言數(shù)據(jù)結(jié)構(gòu)的課程吧!
同學(xué),以一個技術(shù)的角度看來..如果開始接觸就是這個,有點難…
嗚,非技術(shù)的看得一臉懵
一、基礎(chǔ)名詞理解最后的數(shù)據(jù)類型整理表格,為何沒有舉例總結(jié)。表示看不懂…
其他的倒是很好理解呢
之前我自己自學(xué)過前端開發(fā)以及java后臺,設(shè)計起功能來自己能預(yù)估實現(xiàn)的可能性以及成本,另外自己對平面設(shè)計也很了解,能夠?qū)⒂脩襞c平臺的交互設(shè)計得很簡潔,這大概就是和開發(fā)和ui溝通的最好的收獲了
你好 厲害!真的厲害呢!厲害厲害厲害!
更重要的能力應(yīng)該是構(gòu)建數(shù)據(jù)模型的能力和數(shù)據(jù)關(guān)系的能力
這點是和編程的思想是相通
認真的看完了,但是好多還不太理解,有點兒抽象,只是一篇筆記稿。還是要感謝樓主!