假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag == 0和tag == 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还是“满”。试编写与此结构相应的插入和删除算法。 // 先定义循环队列结构 : #define M 队列可能达到的最大长度 typedef struct { Datatype data[M]; int front,rear,tag; }SeQueue; (1) 初始化 SeQueue QueueInit(SeQueue Q) // 初始化队列 { Q.front=Q.rear=0; Q.tag=0; return Q; } (2) 入队 SeQueue QueueIn(SeQueue Q,int e) // 入队列 { if((Q.tag==1) && ( 【1】 )) cout<<" 队列已满"<