就一天写好几个呗
#include#include #include #define MAX 100 using namespace std; typedef struct SqQueue { int *base; int front; int rear; int len; }SqQueue; void menu(void); void caidancaozuo(SqQueue &S); void create(SqQueue &S);//就是初始化 void pankong(SqQueue &S);//判断是否是空的队列或者是队列压根不存在,但在实际的函数中最好把这段代码复制到其他函数而不是调用 void charu(SqQueue &S);//插入队列元素 void deletefront(SqQueue &S);//删除队头元素 void clean(SqQueue &S); //顺序存储的队列中清空清空和销毁还是有很多的区别的 void destroyQueue(SqQueue &S);//这个建议你先写删除队头的函数,然后直接根据L.len调用删除对头的函数就好 void outfront(SqQueue S);//输出队列的队头元素 void outSqQueue(SqQueue S);//输出队列的元素 void outlen(SqQueue S);//输出队列的长度 int main(void) { SqQueue S; menu(); caidancaozuo(S); } void menu(void) { //很经典的菜单形式 char a01[] = "(1)创建顺序队列"; char a02[] = "(2)判断队列是否为空"; char a03[] = "(3)插入队尾元素"; char a04[] = "(4)删除队头元素"; char a05[] = "(5)清空队列"; char a06[] = "(6)销毁队列"; char a07[] = "(7)输出队头元素"; char a08[] = "(8)输出队列中所有元素"; char a09[] = "(9)输出队列长度"; char a10[] = "(10)出入任意不在前面菜单的数字将结束程序"; printf("%-50s", a01); printf("%-50sn", a02); printf("%-50s", a03); printf("%-50sn", a04); printf("%-50s", a05); printf("%-50sn", a06); printf("%-50s", a07); printf("%-50sn", a08); printf("%-50s", a09); printf("%-50sn", a10); } void caidancaozuo(SqQueue &S) { cout << "请问你想选择哪个指令" << endl; int mingling; cin >> mingling; switch (mingling) { case 1: { create(S); caidancaozuo(S); break; } case 2: { pankong(S); caidancaozuo(S); break; } case 3: { charu(S); caidancaozuo(S); break; } case 4: { deletefront(S); caidancaozuo(S); break; } case 5: { clean(S); caidancaozuo(S); break; } case 6: { destroyQueue(S); caidancaozuo(S); break; } case 7: { outfront(S); caidancaozuo(S); break; } case 8: { outSqQueue(S); caidancaozuo(S); break; } case 9: { outlen(S); caidancaozuo(S); break; } default: cout << "您已经决定退出此程序,程序即将退出" << endl; break; } } void create(SqQueue &S) { S.base=(int *)malloc(100*sizeof(int)); if(!S.base) { cout<<"创建失败"< >x; S.base[S.rear]=x; S.rear=(S.rear+1)%MAX; S.len++; } void deletefront(SqQueue &S)//删除队头元素 { if(!S.base) { cout<<"你还未创建一个队列"<



