順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)的區(qū)別 數(shù)據(jù)結(jié)構(gòu)中棧不是存儲(chǔ)結(jié)構(gòu)嗎?
數(shù)據(jù)結(jié)構(gòu)中棧不是存儲(chǔ)結(jié)構(gòu)嗎?棧在數(shù)據(jù)結(jié)構(gòu)中是一種存儲(chǔ)結(jié)構(gòu)!但堆棧是一種特殊的存儲(chǔ)結(jié)構(gòu):1)它的操作(插入和刪除)只能限制在一端(通常稱(chēng)為堆棧的頂部)]2)堆棧的存儲(chǔ)通常是先入、后出、后進(jìn)、先出!其實(shí),
數(shù)據(jù)結(jié)構(gòu)中棧不是存儲(chǔ)結(jié)構(gòu)嗎?
棧在數(shù)據(jù)結(jié)構(gòu)中是一種存儲(chǔ)結(jié)構(gòu)!但堆棧是一種特殊的存儲(chǔ)結(jié)構(gòu):1)它的操作(插入和刪除)只能限制在一端(通常稱(chēng)為堆棧的頂部)]2)堆棧的存儲(chǔ)通常是先入、后出、后進(jìn)、先出!其實(shí),說(shuō)白了!堆棧也是一個(gè)線性表!但其特殊的線性表具有以上兩點(diǎn)!以上意見(jiàn)僅供參考
不,它們之間的關(guān)系如圖所示。線性表包括順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。線性表的劃分是基于數(shù)據(jù)的邏輯結(jié)構(gòu)。線性意味著數(shù)據(jù)的邏輯結(jié)構(gòu)是線性的。也就是說(shuō),在非空的有限數(shù)據(jù)元素集中,(1)有一個(gè)唯一的數(shù)據(jù)元素稱(chēng)為“第一個(gè)”;(2)有一個(gè)唯一的數(shù)據(jù)元素稱(chēng)為“最后一個(gè)”;(3)除了第一個(gè),集合中的每個(gè)數(shù)據(jù)元素只有一個(gè)前向元素;(4)除了最后一個(gè),集合中的每個(gè)數(shù)據(jù)元素只有一個(gè)后續(xù)元素。對(duì)于線性表,從存儲(chǔ)結(jié)構(gòu)上可以分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。順序存儲(chǔ)結(jié)構(gòu)包括順序列表、順序隊(duì)列和順序堆棧;鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)包括鏈表、鏈?zhǔn)疥?duì)列和鏈?zhǔn)蕉褩!?/p>
棧是不是順序存儲(chǔ)的線性結(jié)構(gòu)???
堆棧也稱(chēng)為“先入后出表”。由于此屬性,它可以插入和刪除而不移動(dòng)元素。
堆棧插入實(shí)際上是堆棧按壓,這在堆棧頂部受到嚴(yán)格限制。由于棧頂也是表中的最后一個(gè)元素,按棧相當(dāng)于在序列表的末尾添加一個(gè)元素,這顯然不會(huì)影響前面的元素,在這種情況下,刪除一個(gè)元素只需要?jiǎng)h除序列表中的最后一個(gè)元素,這自然不會(huì)影響前面的元素。
對(duì)于堆棧的鏈?zhǔn)浇Y(jié)構(gòu),不需要移動(dòng)任何其他元素。實(shí)際上,鏈表結(jié)構(gòu)非常簡(jiǎn)單,刪除和插入操作本身不需要移動(dòng)其他元素,無(wú)論是對(duì)于堆棧還是對(duì)于一般鏈表