队列入队的运算(c表示)
发布网友
发布时间:2022-04-30 03:05
我来回答
共2个回答
热心网友
时间:2023-10-09 06:45
#include <iostream> #include <conio.h> using namespace std; struct Queue { int num;//数值 int index;//索引 Queue* Next;//当前节点的下一节点 }; void UpdateIndex(Queue* beginPoint,int index) { while(beginPoint) { beginPoint->index=index; beginPoint=beginPoint->Next; index++; } } Queue* OutQueue(Queue* Head,int count) { if(Head) { Queue* P=Head; int i=0; while(P) { Queue* dealPoint; dealPoint=P; P=P->Next; //更新索引 UpdateIndex(P,dealPoint->index); cout<<endl<<"从队列中弹出"<<dealPoint->num; //从队列删除 delete dealPoint; i++; if(count==i) { break; } } return P; } else { return NULL; } } //压入队列 Queue *EnQueue() { Queue* Head; Queue* Pb; Queue* Pe; Pb=new Queue; Head=NULL; int index=0; LoopInupt: index++; cout<<"输入加入队列的数值:"; Pe=new Queue; cin>>Pe->num; Pe->index=index; Pe->Next=NULL; if(!Head) { Head=Pe; } else { Pb->Next=Pe; } Pb=Pe; cout<<"是否还要继续添加数值到队列?(Y/N)"; char cont; cin>>cont; if(cont=='Y' || cont=='y') { goto LoopInupt; } return Head; } void ListAll(Queue* Head) { if(Head) { cout<<endl<<"该队列所有数据信息如下:"<<endl; while(Head) { cout<<"第"<<Head->index<<"个数据"<<",值为:"<<Head->num<<endl; Head=Head->Next; } cout<<endl; } } void Pointer() { Queue* Head=EnQueue(); ListAll(Head); loop_Out: cout<<"输入要弹出几个数据:"; int a; cin>>a; Head=OutQueue(Head,a); ListAll(Head); cout<<"是否继续?(Y/N)"; char cont; cin>>cont; if(cont=='Y' || cont=='y') { goto loop_Out; } } void main() { Pointer(); printf("\npress any key to continue...\n"); getch(); }
热心网友
时间:2023-10-09 06:45
enq(struct queue Q,int x);改为enq(Q,x); Q.(Array[Q.R])=x;改为Q.Array[Q.R]=x; 编译就不会出错了.
C语言,用数组实现队列的入队,出队函数编程
&n);//将要入队列n个元素 int queue[1000]; for(int i=1;i<=n;i++)//输入n个元素 { add(queue,i);//将i加入队列 } //验证加入队列的元素,
C语言用数组实现循环队列的入队出队
if((front+1)%N==rear%N) //成立则队列已满判断队列为空 if((rear==front)) //成立则队列空入队(一般在入队前判断队列是否已满)//将val入队que[front++]=val;front%=N;出队(一般在出队前判断队列是否为空)rear=(rear+1)%N;下一个要出队的元素(一般先判断是否为空)que[rear];...
在循环队列中怎样实现入队和出队操作? 数据结构 C语言
入队操作 功能:将元素 x 插入到Q的队尾。算法: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;} 出队操作 功能:删除Q的队头元素,并返回其值。
数据结构C语言描述的链队列的基本操作(初始化,判空,入队,出队,取对头...
return 1;} //取队头 输出队列所有数就是出队
队列的队列的基本运算
(1)初始化队列:Init_Queue(q) ,初始条件:队q 不存在。操作结果:构造了一个空队;(2)入队操作: In_Queue(q,x),初始条件: 队q 存在。操作结果: 对已存在的队列q,插入一个元素x 到队尾,队发生变化;(3)出队操作: Out_Queue(q,x),初始条件: 队q 存在且非空,操作结果: ...
队列的源代码(c语言)
cout<<setw(2)<<b<<setw(2)<<" 进入队列 "<<endl;} void Queue::pop(){ Node *p;p=head->next;cout<<" "<<setw(2)<a<<setw(2)<<"出队"<<endl;head->next=p->next;delete p;head->a--;} int Queue::getlength(){ return head->a;} void Queue::print(){ Node *p...
用C语言编写队列的各种基本操作,我不是非常明白:注释里有些问题:请大家...
队列中拥有的元素个数为:L=tail-head现要让排头的元素出队,则需将头指针加1。即head=head+1这时头指针向上移动一个位置,指向Q(3),表示Q(3)已出队。见图1 (b)。如果想让一个新元素入队,则需尾指针向上移动一个位置。即tail=tail+1这时Q(9)入队,见图1 (c)。当队尾已经处理在最上面...
c语言中front和rear是什么意思
front和rear的意思是:1、要求front指向队头,rear指向队尾,那么初始化front=0,rear究竟是0还是n-1,不妨假设rear=0,那么很明显此时已经有一个元素入队了,在a[0]的位置,此时front=rear=0,与初始为空矛盾.所以rear=(0-1)%n=n-1.2、循环队列为充分利用向量空间,克服"假溢出"现象的方法是:...
C语言链队列的入队与出队,求高手帮我看下!我要如何该?
一塌糊涂啊 typedef struct node1 { point rear,front; // 这里应该用指针类型 }sun;起的名字太随心所欲了,实在不会起,至少可以用拼音啊
请教C语言中顺序队列入队中求余运算是什么意思?
这个是个循环队列头尾相接的,取余保证数字下标在size以内