一個(gè)棧的輸入序列是12345 定義鏈棧和單鏈表這兩種數(shù)據(jù)結(jié)構(gòu)有什么區(qū)別???我覺得鏈棧就是給單鏈表改了個(gè)結(jié)構(gòu)體名稱而已。在具體函?
定義鏈棧和單鏈表這兩種數(shù)據(jù)結(jié)構(gòu)有什么區(qū)別啊?我覺得鏈棧就是給單鏈表改了個(gè)結(jié)構(gòu)體名稱而已。在具體函?Station和queue是抽象的結(jié)構(gòu),而single linked list是一個(gè)具體的實(shí)現(xiàn)。通過鏈
定義鏈棧和單鏈表這兩種數(shù)據(jù)結(jié)構(gòu)有什么區(qū)別???我覺得鏈棧就是給單鏈表改了個(gè)結(jié)構(gòu)體名稱而已。在具體函?
Station和queue是抽象的結(jié)構(gòu),而single linked list是一個(gè)具體的實(shí)現(xiàn)。通過鏈表可以實(shí)現(xiàn)堆棧和隊(duì)列的操作。
通常,堆?;蜿?duì)列用結(jié)構(gòu)封裝,然后定義一些操作(推送、彈出等)。這里,對(duì)鏈表進(jìn)行具體的操作。例如
struct stack{
struct listuuuhead*head
}
struct queue{
struct listuuuuhead*head
如何做好數(shù)據(jù)結(jié)構(gòu)的單鏈表?
要學(xué)好數(shù)據(jù)結(jié)構(gòu)鏈表,首先需要了解兩端指針賦值的含義。畫更多的畫。你可以看到博客圖表http://blog.csdn.net/rainchxy我理解。
是不是每一門編程語(yǔ)言都有自己特定的數(shù)據(jù)結(jié)構(gòu)和算法?你怎么看?
對(duì)于數(shù)據(jù)結(jié)構(gòu)和算法,它們是抽象的,不受特定語(yǔ)言的約束。換句話說(shuō),數(shù)據(jù)結(jié)構(gòu)和算法可以理解為數(shù)據(jù)域。因此,幾乎所有語(yǔ)言都支持相同的數(shù)據(jù)結(jié)構(gòu)和算法。
例如,通用數(shù)據(jù)結(jié)構(gòu),如數(shù)組、鏈表、堆棧、隊(duì)列和樹,可以用每種語(yǔ)言實(shí)現(xiàn),但實(shí)現(xiàn)細(xì)節(jié)可能不同。以鏈表為例,在C語(yǔ)言中通常是以指針的形式實(shí)現(xiàn)的,而Python中沒有指針的概念,但是可以用其他的方式實(shí)現(xiàn)。
算法與語(yǔ)言無(wú)關(guān)。算法只是一些數(shù)據(jù)處理邏輯,所以它可以用任何語(yǔ)言實(shí)現(xiàn)。如果語(yǔ)言不能實(shí)現(xiàn)某些邏輯,那么顯然就有問題了。
一般來(lái)說(shuō),數(shù)據(jù)結(jié)構(gòu)和算法與語(yǔ)言無(wú)關(guān)。但是,除了數(shù)據(jù)結(jié)構(gòu)外,還存在數(shù)據(jù)類型的概念,如整數(shù)、字符、浮點(diǎn)等。這些內(nèi)容在不同語(yǔ)言中的實(shí)現(xiàn)可能不同。