资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

队列查找函数c语言 如何查找队列中的元素

c语言调用队列库函数

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

为连云等地区用户提供了全套网页设计制作服务,及连云网站建设行业解决方案。主营业务为成都网站设计、做网站、连云网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

C语言 求队列的简单例子

#includestdio.h

#includestring.h

#includestdlib.h

#includeiostream.h

#define TURE 1

#define FALSE 0

#define OVERFLOW 0

#define OK 1

#define ERROR 0

#define MAXQSIZE 100

typedef int qelemtype;

typedef int status;

typedef struct{

qelemtype *base;

int front;

int rear;

}sqqueue;

status initqueue(sqqueue q){

q.base=(qelemtype*)malloc(MAXQSIZE*sizeof(qelemtype));

if(!q.base)exit(OVERFLOW);

q.front=q.rear=0;

return OK;

}//构造一个空队列

void visit(int y){

y=2*y;

couty" ";

}

status destroyqueue(sqqueue q){

while(q.front){

q.rear=q.front;

free(q.base);

q.front=q.rear;

}

return OK;

}//销毁队列

status clearqueue(sqqueue q){

q.front=q.rear=0;

return OK;

}//清空队列

status queueempty(sqqueue q){

if(q.front==q.rear)

return TURE;

return FALSE;

}//若队列为空,返回TURE,否则返回FALSE.

status queuelength(sqqueue q){

return(q.rear-q.front+MAXQSIZE)%MAXQSIZE;

}//返回队列元素个数,即为队列长度

status gethead(sqqueue q,qelemtype e){

if(q.front==q.rear)return ERROR;

e=q.base[q.front];

couteendl;

return OK;

}//若队列不空,则用e返回队列的头元素,并返回OK

status enqueue(sqqueue q,qelemtype e){

if((q.rear+1)%MAXQSIZE==q.front)return ERROR;

q.base[q.rear]=e;

q.rear=(q.rear+1)%MAXQSIZE;

return OK;

}//插入元素e为q的新的队尾元素

status dequeue(sqqueue q,qelemtype e){

if(q.front==q.rear)return ERROR;

e=q.base[q.front];

q.front=(q.front+1)%MAXQSIZE;

return OK;

}//若队列不空,则删除q的队头元素,用e返回其值,并返回OK.

status queuetraverse(sqqueue q,void(*visit)(int p)){

int i=1,p,a;

a=q.front;

p=q.base[a];

while(i=(q.rear-q.front+MAXQSIZE)%MAXQSIZE)

{

visit(p);

a++;

i++;

};

return OK;}

//从队头到队尾依次对队列调用函数visit().

void main(){

sqqueue q;

int a,b,e,i,j,k;

initqueue(q);

cout"初始化后队头地址:"q.baseendl;

cout"新建队列!"endl;

cout"当前队列是否为空:"queueempty(q)endl;

cout"定义队列长度:"endl;

cina;

cout"分别输入队列的各个元素,按ENTER"endl;

for(k=1;k=a;k++){

cinj;

i=enqueue(q,j);}

cout"现队列元素:"endl;

for(b=1;b=a;b++)

coutq.base[b-1]endl;

cout"当前队列长度:"queuelength(q)endl;

cout"当前队头元素:"endl;

gethead(q,e);

cout"删除当前头元素!返回其值"endl;

dequeue(q,i);

coutiendl;

cout"调用函数后队列变为:";

queuetraverse(q,visit);

coutendl;

cout"清空队列!"clearqueue(q)endl;

cout"销毁队列!"destroyqueue(q)endl;

}

队列的建立与查询【用C语言编写的完整程序(包括main()函数】

我的理解是 你想用数组模拟 队列?不是的话下面不用看,回复我给我再说一下题意,我重新给你写!

首先输入一个操作,1入队,2出队,3退出

如果是1,再输入一个将要入队列的 数据,

#include stdio.h

#include stdlib.h

#include string.h

#define LEN 1000

int queue[LEN], fir, end;

void printQueue()

{

int i = 0;

for(i = fir; i end; ++ i)

{

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

}

printf("\n");

}

void insertQueue()

{

int value = 0, i = 0;

printf("Enter the data which you want to insert to queue...\n");

scanf("%d", value);

queue[end ++] = value;

printQueue();

}

void deleteQueue()

{

printf("after delete the top data!\n");

fir ++;

printQueue();

}

void demo()

{

int Number = 0;

while(1)

{

printf("Enter the number:\n");

printf("1.insert...\n");

printf("2.delete...\n");

printf("3.exit!\n");

scanf("%d", Number);

if(Number 1 || Number 4) return;

switch(Number)

{

case 1: insertQueue(); break;

case 2: deleteQueue(); break;

case 3: exit(0);

default: return;

}

}

}

void creatQueue()

{

int i = 0;

fir = 0, end = 0;

for(i = 0; i LEN; ++ i)

{

queue[i] = 0;

}

}

int main()

{

creatQueue();

demo();

return 0;

}

C语言查找函数

首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。

其次,传值和传地址一塌糊涂,完全就是乱写么。

scanf的第二个参数是地址,如果本身不是指针则需要取址符。

我给你重写了算了

#includestdio.h

int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/

int main()

{

int *a,x;

int length,i;

scanf("%d",length);

a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/


当前标题:队列查找函数c语言 如何查找队列中的元素
分享网址:http://cdkjz.cn/article/doedced.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220