成都创新互联网站制作重庆分公司

C语言vist函数 怎么用vi编写c语言

数据结构 C语言 队列的基本操作 调试出现了问题 在线等 急 把我的悬赏都给你了

你的不是调试的问题,是照搬《数据结构》教材p61-62上算法,那是伪代码!无法运行!

创新互联专注于企业网络营销推广、网站重做改版、宣汉网站定制设计、自适应品牌网站建设、H5建站商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为宣汉等各大城市提供网站开发制作服务。

修改了以下内容:

1、函数中间的形参必须改成指针:如 int InitQueue(LinkQueue Q)改成 int InitQueue(LinkQueue *Q)

2、没有头文件定义Overflow

3、output函数算法错误!换成vist

4、主函数的调用有很多小问题

代码和运行结果如下:

#includestdio.h

#include stdlib.h

typedef struct QNode

{

int data;

struct QNode *next;

}QNode,*QueuePrt;

typedef struct

{

QueuePrt front;

QueuePrt rear;

}LinkQueue;

int InitQueue(LinkQueue *Q)

{ /* 构造一个空队列Q */

(*Q).front=(*Q).rear=(QueuePrt)malloc(sizeof(QNode));

if(!(*Q).front)

exit(0);

(*Q).front-next=NULL;

return 1;

}

/*int InitQueue(LinkQueue Q){

Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));

if(!Q.front) exit (OVERFLOW);

Q.front-next=NULL;

return 1;

}*/

int creatQueue(LinkQueue *Q)

{

int i,n;

QueuePrt s;

printf("inpur num:\n");

scanf("%d",n);

printf("inpur numbers:\n");

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

{

s=(QueuePrt)malloc(sizeof (QNode));

scanf("%d",s-data);

Q-rear-next=s;

Q-rear=s;

s=s-next;

}

Q-rear-next=NULL;

return 1;

}

int EnQueue(LinkQueue *Q,int e)//插入元素e

{  QueuePrt p;

printf("input");

p=(QueuePrt)malloc(sizeof(QNode));

if(!p)exit(0);//存储分配失败

p-data=e;

p-next=NULL;

Q-rear-next=p;

Q-rear=p;

return 1;

}

int DeQueue(LinkQueue *Q,int e)//删除队头元素e

{QueuePrt p;

if(Q-front==Q-rear)

return 0;

p=Q-front-next;

e=p-data;

Q-front-next=p-next;

if(Q-rear==p)

Q-rear=Q-front;

free(p);

return 1;

}

/*int output(LinkQueue Q)//出队,想输出来(这个算法是错误的,需要输出全部元素用上面这个Dequeue,需要输出队首用下面这个vist

{LinkQueue *s;

s=Q;

QueuePrt p;

p=s-front-next;

while(p!=NULL) {

printf("%3d",p-data);

p=p-next;}

}*/

int vist(LinkQueue Q,void(*vi)(int))

{ /* 从队头到队尾依次对队列Q中每个元素调用函数vi()。一旦vi失败,则操作失败 */

QueuePrt p;

p=Q.front-next;

while(p)

{

vi(p-data);

p=p-next;

}

printf("\n");

return 1;

}

void vi(int i)

{

printf("%d ",i);

}

void main()

{ int i,d;

LinkQueue q;

i=InitQueue(q);

if(i)printf("成功地构造了一个空队列!\n");

EnQueue(q,-5);

EnQueue(q,5);

EnQueue(q,10);

printf("队列的元素依次为:");

vist(q,vi);

//出队Dequeue自己做

}

程序一共帮你修改了错误数十个,功夫费了不少,出队Dequeue请模仿上面自己做

C语言程序求值

像这种有代码的题,最好的解决方法就是在编译器直接编译一下。

下面是我运行的结果:

题目解析:

1、这道题目应该考察的是对static的理解。

2、static 修饰的变量在程序运行开始, 到结束,只会被定义一次,而且内存是共享的。

3、所以在第二次执行vist()函数是, key的值是在第一执行的基础上进行的key++。、

如果以上问题对你有帮助,请采纳一下,谢谢。

c语言下 vi 是什么函数

C语言下,vi 不是标准库函数,是用户自定义函数。

在计算领域里,vi一般是指一款文字编辑器。

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器。对于Unix及Linux系统的任何版本,vi编辑器是完全相同的。vi也是Linux中最基本的文本编辑器,学会它后,将在Linux的世界里畅行无阻。


分享题目:C语言vist函数 怎么用vi编写c语言
文章URL:http://cxhlcq.com/article/doojhjh.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部