前言
程序設(shè)計(jì) = 數(shù)據(jù)結(jié)構(gòu) + 算法
什么是數(shù)據(jù)結(jié)構(gòu)沪伙?
數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中的操作對象封拧,以及它們之間的關(guān)系和操作等相關(guān)問題的學(xué)科王凑。
簡單來說數(shù)據(jù)結(jié)構(gòu)就是關(guān)系薇芝,就是數(shù)據(jù)元素相互之間存在的一種或多種特定關(guān)系的集合。
數(shù)據(jù)結(jié)構(gòu)劃分
數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和物理結(jié)構(gòu)圈膏。
邏輯結(jié)構(gòu):是指數(shù)據(jù)對象中數(shù)據(jù)元素之間的相互關(guān)系 (本文描述對象)
物理結(jié)構(gòu):是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中存儲(chǔ)形式
邏輯結(jié)構(gòu)
集合結(jié)構(gòu):集合結(jié)構(gòu)中的數(shù)據(jù)元素除了同屬于一個(gè)集合外思瘟,他們之間沒有其它關(guān)系。
線性結(jié)構(gòu):線性結(jié)構(gòu)中的數(shù)據(jù)元素之間是一對一的關(guān)系囚似。
樹形結(jié)構(gòu):樹形結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一種一對多的層次關(guān)系剩拢。
圖形結(jié)構(gòu):圖形結(jié)構(gòu)中的數(shù)據(jù)元素是多對多的關(guān)系。
物理結(jié)構(gòu)
存儲(chǔ)器主要是針對內(nèi)存而言的饶唤,像硬盤裸扶、軟盤、光盤等外部存儲(chǔ)器的數(shù)據(jù)組織通常用文件結(jié)構(gòu)來描述搬素。
數(shù)據(jù)元素的存儲(chǔ)結(jié)構(gòu)形式有兩種:順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)呵晨。
順序存儲(chǔ)結(jié)構(gòu):是把數(shù)據(jù)元素存放在地址連續(xù)的存儲(chǔ)單元里,其數(shù)據(jù)間的邏輯關(guān)系和物理關(guān)系是一致的熬尺。例如摸屠,編程語言中的數(shù)組結(jié)構(gòu)
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):是把數(shù)據(jù)元素存放在任意的存儲(chǔ)單元里,這組存儲(chǔ)單元可以是連續(xù)的粱哼,也可以使不連續(xù)的季二。例如,指針揭措。