佇列是一種先進先出的資料結構,元素只能新增到隊尾,而對元素的刪除,修改,檢索只能在隊頭進行。與棧的差異是很明顯的。同樣佇列的實現可以基於鍊錶,也可以基於陣列。和棧的基本操作差不多,但佇列多了乙個指標(標號)指向末尾的元素,因為需要在末尾插入元素。
#ifndef queue_h#define queue_h
#include template class queue
;private:
int sizes;
node * head;
node * tail;
};template queue::queue()
template queue::~queue()
sizes=0;
}template bool queue::enqueue(const t &element)
else
sizes++;
return
true;
}template t queue::dequeue()
}template t queue::peer()
template int queue::getsize()
template bool queue::isempty()
#endif
#include "主函式queue.h
"using
namespace std;
const
int size=10;
void main()
;template queue::queue()
template queue::queue(int size)
template queue::~queue()
template bool queue::enqueue(const t &element)
else
}template t queue::dequeue()
else
return -1;
}template t queue::peer()
template bool queue::isempty()
template bool queue::isfull()
template int queue::getsize()
#endif
#include "陣列實現時,採用的是迴圈陣列,head指向第乙個元素,而tail指向最後乙個元素的下乙個位置。所以乙個n長的陣列,最多只能儲存n-1個數,如果儲存n個數的話就無法判斷滿和空的狀態。array_queue.h
"using
namespace std;
const
int size=4;
void main()
}
用兩個棧實現佇列,是要實現佇列的enqueue,dequeue。首先是 enqueue,兩個棧都是空的,先入棧s1,要出佇列了怎麼辦,棧新增元素是不斷向上增長的,最先進的元素在最底下,而佇列要求最先進的先出,所以只能出棧元素,並放入另乙個棧s2中,這時順序又恢復了,底下的變成上面的了,出棧第乙個元素即可(或者在放入是不放入最後乙個,直接返回元素),第一次這樣,第二次呢?就直接從這個s2出棧。於是往乙個棧中入隊元素,另乙個出隊,直到為空後,在從入隊的那個棧中取元素。
#include "stack.h
"stack s1;
stack s2;
void enqueue(int q)
int dequeue()
return s1.pop();
}else
return s2.pop();
}int main()
int pop()
return q2.dequeue();
}else
return q1.dequeue();
}}void main()
{ push(5);
push(9);
push(10);
push(6);
push(8);
int i=0;
while(i<6)
{std::cout<
基本資料結構 佇列的實現及其運用
佇列是一種先進先出的資料結構,元素只能新增到隊尾,而對元素的刪除,修改,檢索只能在隊頭進行。與棧的差異是很明顯的。同樣佇列的實現可以基於鍊錶,也可以基於陣列。和棧的基本操作差不多,但佇列多了乙個指標 標號 指向末尾的元素,因為需要在末尾插入元素。ifndef queue h define queue...
基本資料結構 棧的實現及其運用
概述 資料結構是用來實現動態集合的方式。動態集合有兩個要素,一是動態集合中的元素,二是動態集合上的操作如search s,k 其中s為給定的集合,k為所要查詢的關鍵字。insert s,k delete,maximun,minimum,successor,predecessor等。這裡介紹幾種簡單的...
基本資料結構 佇列
佇列實現的是一種先進先出 first in,first out,fifio 的策略,佇列中的插入的操作稱為入隊 enqueue 佇列的刪除操作稱為出隊 dequeue 定義乙個陣列來實現佇列 public class queue public queue int n public boolean i...