c語(yǔ)言的queue函數(shù) c++queue函數(shù)

c語(yǔ)言調(diào)用隊(duì)列庫(kù)函數(shù)

q.push(m); // queue是C++STL模板庫(kù)的東西,需要使用push來(lái)插入元素,詳細(xì)信息你可以參考MSDN來(lái)了解其使用及內(nèi)容。

在旺蒼等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè)公司,旺蒼網(wǎng)站建設(shè)費(fèi)用合理。

求大家?guī)兔?關(guān)于C語(yǔ)言里的queue

這是鏈表的,部分是c++的輸入輸出,改一下cout,cin換成printf,scanf就行了

#includestdio.h

#includeiostream

#define MAX 30

using namespace std;

typedef struct pqueue

{

char str[MAX];

int priority;

pqueue* next;

}pqueue;

int enqueuepriority(pqueue *pq, char str[MAX], int priority)

{

if(priority0)

{

pqueue *p=(pqueue*)malloc(sizeof(pqueue));

for(int i=0;iMAX;i++)

p-str[i]=str[i];

p-priority=priority;

p-next=pq-next;

pq-next=p;

return 1;

}

else return 0;

}

char* dequeue(pqueue *pq)

{

pqueue *p;

if(pq-next!=NULL)

{

p=pq-next;

pq-next=pq-next-next;

return p-str;

}

else return "";

}

int main()

{

cout"(1) Enqueue (single)"endl;

cout"(2) Enqueue (multiple)"endl;

cout"(3) Dequeue (single)"endl;

cout"(4) Dequeue (all)"endl;

cout"(5) Quit"endl;

int re=0,t=1;

static char* str=new char[MAX];

int priority=0;

pqueue *pq=(pqueue*)malloc(sizeof(pqueue));

pq-next=NULL;

while(re!=5)

{

cout"Choose an action:";

cinre;

switch(re)

{

case 1:

cout"Enter a name to save and its priority"endl;

scanf("%s%d",str,priority);

if(enqueuepriority(pq,str,priority))

break;

else

{

cout"INPUT ERROR!!"endl;

break;

}

case 2:

cout"Enter names to save and their priority. Enter “done” to quit"endl;

do

{

scanf("%s",str);

if(strcmp(str,"done")!=0)

{

scanf("%d",priority);

enqueuepriority(pq,str,priority);

}

else t=0;

}while(t==1);

break;

case 3:

str=dequeue(pq);

if(str=="")

cout"NULL"endl;

else

printf("%s\n",str);

break;

case 4:

while(pq-next!=NULL)

{

printf("%s\n",dequeue(pq));

}

break;

case 5: break;

default:

cout"INPUT ERROR!!"endl;

break;

}

}

delete [] str;

return 0;

}

C語(yǔ)言和queue有關(guān)的指令

#include stdlib.h // malloc, free

#include "queue.h"

struct queue * queue_create(void)

{

struct queue *q = (struct queue *)malloc(sizeof(struct queue));

if (q == NULL) { // malloc failed

return NULL;

}

q-head = dnode_create();

q-tail = dnode_create();

q-head-next = q-tail;

q-tail-prev = q-head;

q-size = 0;

return q;

}

void queue_destroy(struct queue *q)

{

if (q != NULL) {

while (!queue_isempty(q)) {

queue_dequeue(q);

}

dnode_destroy(q-head);

dnode_destroy(q-tail);

free(q);

q = NULL;

}

}

int queue_front(const struct queue * const q)

{

return q-tail-prev-data;

}

void queue_enqueue(struct queue * const q, const int e)

{

struct dnode *dn = dnode_create();

dn-data = e;

struct dnode *tmp = q-head-next;

q-head-next = dn;

dn-prev = q-head;

dn-next = tmp;

tmp-prev = dn;

q-size += 1;

}

int queue_dequeue(struct queue * const q)

{

struct dnode *dn = q-tail-prev;

struct dnode *tmp = dn-prev;

tmp-next = q-tail;

q-tail-prev = tmp;

int ret = dn-data;

dnode_destroy(dn);

q-size -= 1;

return ret;

}

int queue_size(const struct queue * const q)

{

return q-size;

}

int queue_isempty(const struct queue * const q)

{

return q-size 0 ? 0 : 1;

}

//////////////////////

static void bubble_sort(int * const a, const int n)

{

int swapped = 1;

while (swapped) {

swapped = 0;

for (int i = 1; i n; i++) {

if (a[i] a[i - 1]) {

int tmp = a[i];

a[i] = a[i - 1];

a[i - 1] = tmp;

swapped = 1;

}

}

}

}

C語(yǔ)言,用數(shù)組實(shí)現(xiàn)隊(duì)列的入隊(duì),出隊(duì)函數(shù)編程

這樣的話應(yīng)該符合你的要求:

#includestdio.h

void?add(int?queue[],int?x);

int?Top(int?queue[]);

void?del(int?queue[]);

int?end=0;

int?main()

{

int?n;

scanf("%d",n);//將要入隊(duì)列n個(gè)元素

int?queue[1000];

for(int?i=1;i=n;i++)//輸入n個(gè)元素

{

add(queue,i);//將i加入隊(duì)列

}

//驗(yàn)證加入隊(duì)列的元素,將隊(duì)列中的元素按照輸入的順序輸出:

for(?i=1;i=n;i++)

{

printf("%d?",Top(queue));//Top函數(shù)返回隊(duì)頭元素

del(queue);//刪除隊(duì)頭元素

}

//驗(yàn)證輸出已經(jīng)出隊(duì)列后的隊(duì)列(數(shù)組)元素:

printf("\n");

for(i=1;i=n;i++)

printf("%d?",queue[i]);

printf("\n");

return?0;

}

void?add(int?queue[],int?x)

{

queue[++end]=x;

}

int?Top(int?queue[])

{

return?queue[1];//注意,這里的函數(shù)始終return?queue[1];這里是和將普通數(shù)組中的元素輸出最大的不同之處。!?。。。?!

}

void?del(int?queue[])

{

for(int?i=2;i=end;i++)

{

queue[i-1]=queue[i];

}

queue=0;//將刪除后的地方置0

end--;

}

c語(yǔ)言庫(kù)函數(shù)queue可以定義string類隊(duì)列嗎,如圖是我的代碼,編譯后顯示有錯(cuò)誤,如何修改?

可以定義

不過(guò)q還是queue類型

所以 q和"END"比較肯定是不行的

你可以試試

q.top()!="END"

也就是queue的元素

C語(yǔ)言 隊(duì)列queue問(wèn)題,看不懂函數(shù),在線等

int Succ (int Value, Queue Q )

Value 是 要插到哪里去

如果value太大,大于隊(duì)列的容量,就讓他插到隊(duì)列的頭去,重頭再來(lái)一遍。懂了沒(méi)?

文章標(biāo)題:c語(yǔ)言的queue函數(shù) c++queue函數(shù)
路徑分享:http://www.muchs.cn/article6/docseog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)、網(wǎng)站制作、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(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)

成都app開(kāi)發(fā)公司