1.隊列先進先出,棧先進后出。
2.對插入和刪除操作的"限定"。 棧是限定只能在表的一端進行插入和刪除操作的線性表。 隊列是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表。 從"數據結構"的角度看,它們都是線性結構,即數據元素之間的關系相同。但它們是完全不同的數據類型。除了它們各自的基本操作集不同外,主要區別是對插入和刪除操作的"限定"。 棧和隊列是在程序設計中被廣泛使用的兩種線性數據結構,它們的特點在於基本操作的特殊性,棧必須按"后進先出"的規則進行操作,而隊列必須按"先進先出" 的規則進行操作。和線性表相比,它們的插入和刪除操作受更多的約束和限定,故又稱為限定性的線性表結構。
3.遍歷數據速度不同。棧只能從頭部取數據 也就最先放入的需要遍歷整個棧最后才能取出來,而且在遍歷數據的時候還得為數據開辟臨時空間,保持數據在遍歷前的一致性隊列怎不同,他基於地址指針進行遍歷,而且可以從頭或尾部開始遍歷,但不能同時遍歷,無需開辟臨時空間,因為在遍歷的過程中不影像數據結構,速度要快的多
棧(Stack)是限定只能在表的一端進行插入和刪除操作的線性表。
隊列(Queue)是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表。
從"數據結構"的角度看,它們都是線性結構,即數據元素之間的關系相同。但它們是完全不同的數據類型。除了它們各自的基本操作集不同外,主要區別是對插入和刪除操作的"限定"。
棧和隊列是在程序設計中被廣泛使用的兩種線性數據結構,它們的特點在於基本操作的特殊性,棧必須按"后進先出"的規則進行操作,而隊列必須按"先進先出"的規則進行操作。和線性表相比,它們的插入和刪除操作受更多的約束和限定,故又稱為限定性的線性表結構。可將線性表和棧及隊列的插入和刪除操作對比如下:
線性表
Insert(L,i,x)
(1≤i≤n+1)
Delete(L,i)
(1≤i≤n)
如線性表允許在表內任一位置進行插入和刪除
棧
Insert(L,n+1,x)
Delete(L,n)
而棧只允許在表尾一端進行插入和刪除
隊列
Insert(L,n+1,x)
Delete(L,1)
隊列只允許在表尾一端進行插入,在表頭一端進行刪除