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)用合理。
這是鏈表的,部分是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;
}
#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;
}
}
}
}
這樣的話應(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--;
}
可以定義
不過(guò)q還是queue類型
所以 q和"END"比較肯定是不行的
你可以試試
q.top()!="END"
也就是queue的元素
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)