3 回答

TA貢獻1875條經(jīng)驗 獲得超5個贊
假設有一種盤子,有很多,你一次只能搬得動一個,你有時要把它們一個一個摞起來放在一個墻角,有時候又要拿出去用。
想象下這種情況,是不是每次從那一摞盤子中只能拿最上面的呢,因為你只能每次搬動一個。如果你每次要放回盤子,是不是也只能放到最上面呢,除非把最上面的一個一個往下搬,然后一個一個搬回去,才能放到中間。
這個所謂的其實就是棧了。
至于你想說堆嘛,其實并不是一種數(shù)據(jù)結構,而是有一定的計算機組成的意味了,是一個邏輯上的概念,和棧不同,因為棧是一種數(shù)據(jù)結構。例如在操作系統(tǒng)里面會有系統(tǒng)堆,系統(tǒng)棧,在算法里面的堆排序里面也有大頭堆,小頭堆,其實只是一個概念,并不是數(shù)據(jù)結構,需要在特定的環(huán)境下理解。
比如說java中的棧就是指向對象存放的位置,而堆卻是由對象來創(chuàng)立的用來存放對象的相關屬性和方法。

TA貢獻1836條經(jīng)驗 獲得超4個贊

TA貢獻1840條經(jīng)驗 獲得超5個贊
棧、隊都是模擬現(xiàn)實的一種程序表達方式。
棧就是先進后出的一種數(shù)據(jù)結構,所謂的先進后出就是越是先進去的數(shù)據(jù)越后出來。那什么樣的情形會出現(xiàn)先進去后出來呢?一個有盡頭的單人棧道就是這樣的。第一人進去了,第二個人進去了。。。。第n個人進去了。第一個人要想出來,必須第二個人先出來。第二個人要想出來,必須第三個人先出來。以此類推。這就叫棧。第一個人先進去的,但是要出來的話,第一個人確實最后一個出來的。
隊就是先進先出的一種數(shù)據(jù)結構,如果你了解了先進后出的話,先進先出就很好理解了。它就是一個兩頭想通的并且不能后退的通道。就像排隊,第一個人進去,買過票以后從前面出來了,第二個人繼續(xù)。所以叫先進先出
- 3 回答
- 0 關注
- 1640 瀏覽
添加回答
舉報