存放循环队列的元素。若要使这m个分量都得到利用,则需另一个标志tag,以tag为0或1来区分尾指针和头指针值相同时队列的状态是“空”还是“满”。试编写相应的入队和出队的算法。Р解:这就是解决队满队空的三种办法之①设置一个布尔变量以区别队满还是队空(其他两种见简答题);Р思路:一开始队空,设tag=0,若从rear一端加到与front指针相同时,表示入队已满,则令tag=1;Р若从front一端加到与rear指针相同时,则令tag=0,表示出队已空。Р3.【严题集3.31③】试写一个算法判别读入的一个以‘@’为结束符的字符序列是否是“回文”。Р答:编程如下:Рint Palindrome_Test()//判别输入的字符串是否回文序列,是则返回1,否则返回0Р{ InitStack(S);InitQueue(Q);Р while((c=getchar())!='@')Р {Push(S,c);EnQueue(Q,c); //同时使用栈和队列两种结构Р }Р while(!StackEmpty(S))Р {Pop(S,a);DeQueue(Q,b));Р if(a!=b) return ERROR;Р }Р return OK;Р}//Palindrome_Test Р第4~5章串和数组自测卷答案姓名班级Р一、填空题(每空1分,共20分)Р1. 不包含任何字符(长度为0)的串称为空串; 由一个或多个空格(仅由空格符)组成的串称为空白串。Р(对应严题集4.1①,简答题:简述空串和空格串的区别)Р2. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为 3 。Р4. 子串的定位运算称为串的模式匹配; 被匹配的主串称为目标串, 子串称为模式。Р5. 设目标T=”baa”,模式P=“”,则第 6 次匹配成功。