一、數(shù)據(jù)結(jié)構(gòu)和C語言有什么聯(lián)系
數(shù)據(jù)結(jié)構(gòu)和C語言沒有任何聯(lián)系。數(shù)據(jù)結(jié)構(gòu)是抽象數(shù)據(jù)類型和一系列算法的具體實(shí)現(xiàn),不依賴任何一種具體的語言。不過考慮到抽象數(shù)據(jù)類型的特點(diǎn),其實(shí)C語言并不適合數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)。
它還是更加適合使用C++或者JAVA這樣的,典型面向?qū)ο蟮恼Z言來實(shí)現(xiàn)。國外不少高校在講數(shù)據(jù)結(jié)構(gòu)的時(shí)候用的都是OOP語言——UIUC用的是C++,而UCB用的則是JAVA。
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運(yùn)行或者存儲效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。
而C語言是一門高級編程語言,他可以以某些數(shù)據(jù)結(jié)構(gòu)來處理數(shù)據(jù),提高數(shù)據(jù)的處理速度。
延伸閱讀:
二、幾種常見的數(shù)據(jù)結(jié)構(gòu)
(1)線性數(shù)據(jù)結(jié)構(gòu):元素之間一般存在元素之間存在一對一關(guān)系,是最常用的一類數(shù)據(jù)結(jié)構(gòu),典型的有:數(shù)組、棧、隊(duì)列和線性表;
(2)樹形結(jié)構(gòu):結(jié)點(diǎn)間具有層次關(guān)系,每一層的一個(gè)結(jié)點(diǎn)能且只能和上一層的一個(gè)結(jié)點(diǎn)相關(guān),但同時(shí)可以和下一層的多個(gè)結(jié)點(diǎn)相關(guān),稱為“一對多”關(guān)系,常見類型有:樹、堆;
(3)圖形結(jié)構(gòu):在圖形結(jié)構(gòu)中,允許多個(gè)結(jié)點(diǎn)之間相關(guān),稱為“多對多”關(guān)系。