C語(yǔ)言循環(huán)隊(duì)列出隊(duì)主函數(shù) 循環(huán)隊(duì)列的主函數(shù)怎么寫

編程:循環(huán)隊(duì)列的入隊(duì)、出隊(duì)(要有main函數(shù))

#includeiostream

創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為平定等服務(wù)建站,平定等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為平定企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

using namespace std;

template typename T

struct Node

{

T data;

struct Node *next;

};

template typename DATA

class cycle_queue

{

public:

NodeDATA *head;//隊(duì)列頭,不保存數(shù)據(jù)

NodeDATA *end;//隊(duì)列尾,不保存數(shù)據(jù)

unsigned int size;

cycle_queue()

{

head=new NodeDATA();

end=new NodeDATA();

size=0;

}

void push_back(DATA d)//入隊(duì)列

{

NodeDATA *tmp;

tmp=new NodeDATA;

tmp-data=d;

if(size==0)

{

head-next=tmp;

end-next=tmp;

tmp-next=tmp;

}

else

{

end-next-next=tmp;

end-next=tmp;

tmp-next=head-next;

}

++size;

}

DATA front()//取隊(duì)頭元素,不負(fù)責(zé)檢查是否為空

{

DATA re;

if(size!=0)

re=head-next-data;

return re;

}

void pop()//隊(duì)頭元素出列,不負(fù)責(zé)檢查是否為空

{

if(size!=0)

{

NodeDATA *tmp;

tmp=head-next;

head-next=head-next-next;

end-next-next=head-next;

delete tmp;

--size;

}

}

bool empty()//隊(duì)列判空

{return size==0;}

};

int main()

{

int a[10]={10,9,8,7,6,5,4,3,2,1};

class cycle_queueint cq;

short i;

for(i=0;i!=10;++i)

cq.push_back(a[i]);

cout"**************"endl;

while(!cq.empty())

{

coutcq.front()" ";

cq.pop();

}

cini;

return 0;

}

C語(yǔ)言用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的入隊(duì)出隊(duì)

//定義一個(gè)int型數(shù)組que,長(zhǎng)度為N(常量切大于2).

int?que[N];

int?rear=0,front=0;?//隊(duì)尾?隊(duì)頭

判斷隊(duì)列已滿:

if((front+1)%N==rear%N)??//成立則隊(duì)列已滿

判斷隊(duì)列為空

if((rear==front))?//成立則隊(duì)列空

入隊(duì)(一般在入隊(duì)前判斷隊(duì)列是否已滿)

//將val入隊(duì)

que[front++]=val;

front%=N;

出隊(duì)(一般在出隊(duì)前判斷隊(duì)列是否為空)

rear=(rear+1)%N;

下一個(gè)要出隊(duì)的元素(一般先判斷是否為空)

que[rear];

c語(yǔ)言 隊(duì)列的操作

//定義隊(duì)列結(jié)構(gòu)體

typedef struct Qnode

{

int data;

struct Qnode *next;

} Queue , *QueuePtr;

typedef struct

{

QueuePtr front;

QueuePtr rear;

} linkQnode;

//創(chuàng)建一個(gè)隊(duì)列

initQueue (linkQnode *q)

{

q - front = q - rear = (QueuePtr) malloc (sizeof (Queue));

if (!q - front) exit (0);

q - front - next = NULL;

}

//入隊(duì)列

EnterQueue (linkQnode *q , int item)

{

QueuePtr p;

p = (QueuePtr) malloc (sizeof (Queue));

if (!p) exit (0);

p - data = item;

p - next = NULL;

q - rear - next = p;

q - rear = p;

}

//出隊(duì)列

DelQueue (linkQnode *q , int *item)

{

QueuePtr p;

if (q - front = q - rear) return;

p = q - front - next;

*item = p - data;

q - front - next = p - next;

if (q - rear == p)

q - rear = q - front;

free (p);

}

文章標(biāo)題:C語(yǔ)言循環(huán)隊(duì)列出隊(duì)主函數(shù) 循環(huán)隊(duì)列的主函數(shù)怎么寫
轉(zhuǎn)載來(lái)源:http://muchs.cn/article36/dophgpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、商城網(wǎng)站品牌網(wǎng)站制作、軟件開發(fā)、面包屑導(dǎo)航、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站