重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言的queue函数 c++queue函数

c语言调用队列库函数

q.push(m); // queue是C++STL模板库的东西,需要使用push来插入元素,详细信息你可以参考MSDN来了解其使用及内容。

在旺苍等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、网站建设、外贸网站建设 网站设计制作按需网站制作,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,成都外贸网站建设公司,旺苍网站建设费用合理。

求大家帮忙 关于C语言里的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语言和queue有关的指令

#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语言,用数组实现队列的入队,出队函数编程

这样的话应该符合你的要求:

#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);//将要入队列n个元素

int queue[1000];

for(int i=1;i=n;i++)//输入n个元素

{

add(queue,i);//将i加入队列

}

//验证加入队列的元素,将队列中的元素按照输入的顺序输出:

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

{

printf("%d ",Top(queue));//Top函数返回队头元素

del(queue);//删除队头元素

}

//验证输出已经出队列后的队列(数组)元素:

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];//注意,这里的函数始终return queue[1];这里是和将普通数组中的元素输出最大的不同之处。!!!!!!

}

void del(int queue[])

{

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

{

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

}

queue=0;//将删除后的地方置0

end--;

}

c语言库函数queue可以定义string类队列吗,如图是我的代码,编译后显示有错误,如何修改?

可以定义

不过q还是queue类型

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

你可以试试

q.top()!="END"

也就是queue的元素

C语言 队列queue问题,看不懂函数,在线等

int Succ (int Value, Queue Q )

Value 是 要插到哪里去

如果value太大,大于队列的容量,就让他插到队列的头去,重头再来一遍。懂了没?


分享文章:c语言的queue函数 c++queue函数
网站网址:http://cqcxhl.cn/article/docseog.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP