數(shù)據(jù)結(jié)構(gòu)棧與隊(duì)列實(shí)訓(xùn)主要檢測(cè)點(diǎn) 線性數(shù)據(jù)是什么意思?
線性數(shù)據(jù)是什么意思?線性結(jié)構(gòu)是數(shù)據(jù)元素的有序集合。常用的線性結(jié)構(gòu)有:線性表、堆棧、隊(duì)列、雙隊(duì)列和字符串。關(guān)于廣義表和數(shù)組,是一種非線性的數(shù)據(jù)結(jié)構(gòu)。常見(jiàn)的非線性結(jié)構(gòu)有:二維數(shù)組、多維數(shù)組、廣義表、樹(shù)(二
線性數(shù)據(jù)是什么意思?
線性結(jié)構(gòu)是數(shù)據(jù)元素的有序集合。
常用的線性結(jié)構(gòu)有:線性表、堆棧、隊(duì)列、雙隊(duì)列和字符串。
關(guān)于廣義表和數(shù)組,是一種非線性的數(shù)據(jù)結(jié)構(gòu)。
常見(jiàn)的非線性結(jié)構(gòu)有:二維數(shù)組、多維數(shù)組、廣義表、樹(shù)(二叉樹(shù)等。)
分類
數(shù)據(jù)結(jié)構(gòu)課程中數(shù)據(jù)的邏輯結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。
對(duì)于數(shù)據(jù)結(jié)構(gòu)這門課來(lái)說(shuō),簡(jiǎn)單來(lái)說(shuō),線性結(jié)構(gòu)就是n個(gè)數(shù)據(jù)元素的有序(順序)集合。
特性
1.集合中必須有唯一的第一個(gè)元素# 34;
2.集合中必須有唯一的最后一個(gè)元素# 34;
3.除了最后一個(gè)元素,所有其他數(shù)據(jù)元素都有唯一的后繼# 34;
4.除了第一個(gè)元素,所有其他數(shù)據(jù)元素都有唯一的#34前導(dǎo)#34。
數(shù)據(jù)結(jié)構(gòu)中的線性結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)中存在一個(gè) "一對(duì)一 "數(shù)據(jù)元素之間的線性關(guān)系。
例如(A0,A1,A2,...,an),其中A0是第一個(gè)元素,an是最后一個(gè)元素,這個(gè)集合是線性結(jié)構(gòu)的集合。
與線性結(jié)構(gòu)相對(duì)應(yīng),非線性結(jié)構(gòu)的邏輯特征是一個(gè)節(jié)點(diǎn)元素可能對(duì)應(yīng)多個(gè)直接前任和多個(gè)繼任者。
數(shù)據(jù)結(jié)構(gòu)都是相通的么?
學(xué)了C的數(shù)據(jù)結(jié)構(gòu)之后,發(fā)現(xiàn)用java實(shí)現(xiàn)有點(diǎn)難。
我還學(xué)習(xí)了C語(yǔ)言版本的數(shù)據(jù)結(jié)構(gòu)。java,Python,c我都懂,在一些項(xiàng)目里做過(guò)。我感覺(jué)數(shù)據(jù)結(jié)構(gòu)講的是數(shù)據(jù)的高效組織,說(shuō)白了就是對(duì)內(nèi)存的理解。學(xué),還是用??!如果你能 不好好利用它,你仍然沒(méi)有 我沒(méi)學(xué)會(huì)。
答案是肯定的。
數(shù)據(jù)結(jié)構(gòu)側(cè)重于兩個(gè)方面:一是數(shù)據(jù)的組織形式(按ADT理解)和功能接口設(shè)計(jì),二是數(shù)據(jù)的物理訪問(wèn)。
數(shù)據(jù)結(jié)構(gòu)必須用一種語(yǔ)言來(lái)表達(dá)。對(duì)于不同的語(yǔ)言,基本類型的特征和操作會(huì)有差異。例如,當(dāng)您使用C指針時(shí),您將相應(yīng)地使用Java中的引用。比如你用C,malloc可以動(dòng)態(tài)分配內(nèi)存,但是給Java。在這一部分,你需要依靠Java來(lái)提供數(shù)組(Jvm分配內(nèi)存)。掌握了數(shù)據(jù)結(jié)構(gòu)的核心思想,不同語(yǔ)言之間的切換毫無(wú)壓力。
對(duì)于數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ),首先,don t固化成內(nèi)存存儲(chǔ)(書本上的知識(shí)為了方便講述數(shù)據(jù)結(jié)構(gòu)本身的知識(shí),直接使用語(yǔ)言提供的各種內(nèi)部實(shí)現(xiàn))。一般來(lái)說(shuō),當(dāng)內(nèi)存不是瓶頸的時(shí)候,為了性能,我們可以盡可能的使用內(nèi)存。大多數(shù)語(yǔ)言都在?;A(chǔ)類庫(kù)有基于內(nèi)存存儲(chǔ)的常用數(shù)據(jù)結(jié)構(gòu)(如堆棧、隊(duì)列)的實(shí)現(xiàn)。并在需要持久性時(shí)選擇適當(dāng)?shù)牟呗詠?lái)確保數(shù)據(jù)安全。
一般在處理業(yè)務(wù)級(jí)的時(shí)候,會(huì)將一些過(guò)濾后的數(shù)據(jù)(比如數(shù)據(jù)庫(kù)分頁(yè)查詢)加載到內(nèi)存中,基本不會(huì)涉及到大量的內(nèi)存使用。但是一旦要面對(duì)大量的數(shù)據(jù)處理或者高并發(fā),需要考慮內(nèi)存的限制,就需要配合大容量的磁盤。和內(nèi)存進(jìn)行數(shù)據(jù)結(jié)構(gòu)的存取設(shè)計(jì)。這一點(diǎn),你只需要聯(lián)系數(shù)據(jù)庫(kù)的索引的設(shè)計(jì)就明白了。
總結(jié)出數(shù)據(jù)結(jié)構(gòu)的核心是數(shù)據(jù)結(jié)構(gòu)的思想。在使用的時(shí)候會(huì)根據(jù)實(shí)際情況在結(jié)構(gòu)(比如數(shù)據(jù)嵌入結(jié)構(gòu)還是結(jié)構(gòu)嵌入數(shù)據(jù))和存儲(chǔ)(也會(huì)影響接口的具體實(shí)現(xiàn))方面進(jìn)行調(diào)整。所以,如果你發(fā)現(xiàn)改變一種語(yǔ)言有點(diǎn)難就是掌握不夠,掌握數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵是多使用,多思考,多總結(jié)。
基本連上了。也就是說(shuō),數(shù)據(jù)結(jié)構(gòu)高于編程語(yǔ)言層次,就像程序結(jié)構(gòu)、判斷、循環(huán)一樣。不同的語(yǔ)言有不同的實(shí)現(xiàn)方法,但邏輯上是有聯(lián)系的。數(shù)據(jù)結(jié)構(gòu)是一樣的,側(cè)重于數(shù)據(jù)的構(gòu)成和邏輯關(guān)系。在考慮結(jié)構(gòu)時(shí),我們必須脫離編程習(xí)慣,高度升級(jí)到更高的水平。