2018年國家電網(wǎng)考試備考計算機之數(shù)據(jù)結(jié)構與算法(5)
注意:空隊時rear等于front,滿隊時必須空一個位置。
順序循環(huán)隊列類模板
templateclass Queue
{
int rear,front; //隊尾與隊頭下標
T *elements; //存放隊列元素的容器
int maxSize; //隊列最多可容納元素個數(shù)+1
public:
Queue(int ms=18);
~Queue()
{
delete[] elements;
}
bool IsEmpty() const //判隊空
{
return front==rear;
}
bool IsFull() const //判隊滿
{
return (rear+1)%maxSize==front;
}
int Length() const //求隊中元素數(shù),注意求余算法
{
return (rear-front+maxSize)%maxSize;
}
void EnQue(const T &data); //進隊
T DeQue(); //出隊
T GetFront(); //取隊頭數(shù)據(jù)
void MakeEmpty()//隊置空(初始態(tài))
{
front=rear=0;
}
};
4.鏈表 (Linked List)
是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構,它既可以表示線性結(jié)構,也可以用于表示非線性結(jié)構,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(鏈表中每一個元素稱為結(jié)點)組成,結(jié)點可以在運行時動態(tài)生成。每個結(jié)點包括兩個部分:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個是存儲下一個結(jié)點地址的指針域。
基本操作(pascal語言)
建立
第一行讀入n,表示n個數(shù)
第二行包括n個數(shù)
以鏈表的形式存儲輸出這些數(shù)
(編輯:姜芃)