⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 顺序队列.cpp

📁 c++算法的很经典的一些小练习 看了 觉得还可以 给大家分享一下!
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW 0
typedef int QElemType;
typedef int Status; 
 #define  QUEUE_INIT_SIZE  100  
 #define  QUEUEINCREMENT   10   

 typedef struct {
	 QElemType  *rear;  
	 QElemType  *front; 
	 int  queuesize;    
  } SqQueue;

 
  Status InitQueue(SqQueue &Q){
  Q.rear=(QElemType*)malloc(QUEUE_INIT_SIZE*sizeof(QElemType));
   if (!Q.rear) return OVERFLOW;     
    Q.front = Q.rear;
   Q.queuesize = QUEUE_INIT_SIZE;
   return OK;
}
 
Status Push (SqQueue &Q, QElemType e) {
    int *p;
	if (Q.front - Q.rear >= Q.queuesize) { 
		Q.rear=(QElemType*)realloc(
			Q.rear,(Q.queuesize+QUEUEINCREMENT)* sizeof (QElemType));
		if (!Q.rear) return OVERFLOW; 
		Q.front = Q.rear + Q.queuesize; 
		Q.queuesize += QUEUEINCREMENT;
	} 
	for(p=Q.front++;p>Q.rear;p--)*(p+1)=*p;
	*p=e;  
	return OK;
}

Status Pop (SqQueue &Q, QElemType &e) {    
	if (Q.front ==Q.rear) return ERROR;
    e = *Q.front-- ;  
	return OK;
}

void OutQueue(SqQueue  Q)
{	int *p;
		if(Q.front == Q.rear){
		printf("这是一个空栈!");
	    }
		else
			for(p= Q.front; p> Q.rear;p--)
				printf("%d   ", *p);
       printf("\n"); 
}


//主函数
void main()
{   SqQueue s;
	int cord; QElemType a;
	    printf("第一次使用必须初始化!\n");
		do{		
		printf("\n                                 主菜单          \n");
		printf("  1 初始化顺序栈 ");
		printf("  2 插入一个元素 ");
		printf("  3 删除栈顶元素 ");
		printf("  4 结束程序运行 ");
		printf("\n------------------------------------------------------------------------------\n");
		printf("请输入您的选择( 1, 2, 3, 4)");
		scanf("%d",&cord);
		printf("\n");
		switch(cord)
		{	case 1:
					InitQueue(s);
					OutQueue(s);
				    break;
			case 2:
					printf("请输入要插入的数据元素:a=");
					scanf("%d",&a);
					Push(s,a);
					OutQueue(s);
				    break;
			case 3:
					Pop(s,a);
					OutQueue(s);
				    break;
			case 4:
					exit(0);
		
		}
		}while (cord<=4);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -