/* 用数组实现队列,front指向对头,rear指向队尾。初始时 front等于rear等于0 进队发生在队尾,然后rear+1; 出队发生在对头,然后front+1; front rear a b c d e f g h i j k 如上所示,若要进行进队操作,插入 l front rear a b c d e f g h i j k l 若要出队操作 front rear a b c d e f g h i j k l 把 a 进行输出,然后将front+1,指向了 b 位置。 因为是用数组实现,所以不能对单独对 a 进行释放操作,但我们可以将front+1 再把该队列忽略掉 a ,这只是人为忽略,但a还是存在。这样我们就可以队列看出 front rear b c d e f g h i j k l */#include<stdio.h>#include<stdlib.h>int input(int *,int len);//入队 void output(int *,int len); //出队 //实现这两个函数int input(int *p,int len){ //len为数组的长度 int num=0;//用于接收多少个数字 int num2=0; //int front=0;//队头 int rear=0;//队尾 printf("请问您要输入多少个数字:\n"); scanf("%d",&num); while(num<0||num>len) { system("cls"); printf("你输入的数量不符合,在0-%d内,请重新输入:",len); scanf("%d",&num); } for(rear;rear<num;rear++) { system("cls"); printf("您要输入的数字:"); scanf("%d",&num2); p[rear]=num2; } if(rear==num) { system("cls"); printf("输入完成\n"); printf("一共输入了第%d个数:\n",rear); } return num; } void output(int *p,int len){ int front=0;//队头 int num=1;//用于循环,并且和len比较 for(num;num<=len;num++) { //system("cls"); printf("出队列的是:%d\n",p[front]);//出队 front++; } }int main(){ int n1=0;//用于接收input函数的返回值 int data[10]; n1=input(data,10); output(data,n1); //delete data; //system("cls"); n1=input(data,10); output(data,n1); return 0; }
转载于:https://www.cnblogs.com/chenwjia/p/6389287.html