1.学习总结
![1232392-20180414182837403-1399080704.png](https://i-blog.csdnimg.cn/blog_migrate/e2056de9fd1650c32d7bc3d6c922d044.png)
2.PTA实验作业
2.1 题目1 7-1 jmu-字符串是否对称
2.2 设计思路
1.定义结构体存放栈顶TOP和data,创建栈,申请空间
2.读入字符串,统计字符串的长度
3.定义整形变量record来判断奇偶数
4.for i=0 to record读入栈顶为TOP1的栈中
4.for i=j-1 to record读入栈顶为TOP2的栈中
5.for i=0 to i<record 将S->data[S->TOP1]和S->data[S->TOP2]的逐个比较。
6.i=reocrd 输出yes,否则输出no
2.3 代码截图
![1232392-20180413232102434-1624249621.png](https://i-blog.csdnimg.cn/blog_migrate/19c1b57510e1f8f609f085ef9e144145.png)
![1232392-20180413232134579-2115230304.png](https://i-blog.csdnimg.cn/blog_migrate/376bccfc40e1f172a21f0753de478e0e.png)
2.4 PTA提交列表说明。
![1232392-20180413232224161-1455619457.png](https://i-blog.csdnimg.cn/blog_migrate/a027ef21b8e44c613d57fd864733c5aa.png)
2.1 题目2 7-1 jmu-报数游戏
2.2 设计思路
1.定义义结构体用于存放data,front,rear
2.创建队列,申请空间,令指针front和rear的起始值为0
3.for i=0 to i<num 令数组a[i]的起始值为1
4.while(1)进入循环,开始报数
5. a[i%num]==1,record++,继续下一个
6.当record=3,令 a[i%num]=0,重新开始报数
7.当a[i%num]!=1时,i++,直到a[i%num]=1
8.输出队列的值
2.3 代码截图
![1232392-20180414091313895-1930869427.png](https://i-blog.csdnimg.cn/blog_migrate/e480af24773bd9f56af0c72527678fd9.png)
![1232392-20180414091408759-82346566.png](https://i-blog.csdnimg.cn/blog_migrate/1a9c3a66e9bcc2cfa5d9abaaa159eca3.png)
2.4 PTA提交列表说明
![1232392-20180414091448184-1788336615.png](https://i-blog.csdnimg.cn/blog_migrate/28437205613f82208afad0136fb02a67.png)
2.1 题目3 7-2 银行业务队列简单模拟
2.2 设计思路
1.定义结构体用于存放data,front,rear
2.创建队列,申请空间,令指针front和rear的起始值为0
3.for i=0 to i<n 将序号为奇数和偶数分别存入到相应的数组中
4.for i=0 to number 将js数组的值存放到队列中,直到(i+1)%2==0,将os的值存入到队列Q中.
5.for i=j to record 将剩余的序号为偶数的值存入到队列中
6.输出队列的值
2.3 代码截图
![1232392-20180414101152375-1150037450.png](https://i-blog.csdnimg.cn/blog_migrate/d610c3a9420da0482e161f7be56bb81e.png)
![1232392-20180414101229868-232737967.png](https://i-blog.csdnimg.cn/blog_migrate/82866497cd747a2c4e332b6b4459d8a4.png)
2.4 PTA提交列表说明
![1232392-20180414101416253-1569893928.png](https://i-blog.csdnimg.cn/blog_migrate/42949a1859f6b7c9ff52ac4b304c5441.png)
部分值的存放用数组进行操作造成段错误
3.截图本周题目集的PTA最后排名
3.1 栈PTA排名
![1232392-20180414102327303-120077988.png](https://i-blog.csdnimg.cn/blog_migrate/25d9f571758f2c38e4c455e7072159b2.png)
3.2 队列PTA排名
![1232392-20180414114732784-59379860.png](https://i-blog.csdnimg.cn/blog_migrate/a41759a913b27611172cadc0abb1cbe9.png)
3.3 我的总分:
总分:100+78=178
4. 阅读代码
typedef struct {
int ord; //通道块在路径上的“序号”
PosType seat; //通道块在迷宫中的“坐标位置”
int di; //从此通道块走向下一通道块的“方向”
}SElemType; //栈的元素类型
status MazePath(MazeType maze,PosType start,PosType end){
//若迷宫maze中存在从入口strat到出口end的通道,则求得一条存放在栈中(从栈底到栈顶),并返回TRUE,否则返回FALSE
InitStack(S);
curpos=start; //设定“当前位置”为“入口位置”
curstep=1; //探索第一步
do{
if(pass(curpos)){ //当前位置可以通过,既是未曾走到过的通道块
FootPrint(curpos); //留下足迹
e=(curstep,curpos,1);
Push(S,e); //加入路径
if(curpos==end) //到达终点(出口)
return true;
curpos=NextPos(curpos,1); //下一位置是当前位置的东邻
curstep++; //探索下一步
}
else{ //当前位置不能通过
if(!StackEmpty(S)){
Pop(S,e);
while(e.di==4&&!StackEmpty(S)){
MarkPrint(e.seat); //留下不能通过的标记
Pop(S,e); //并退回一步
}
if(e.di<4){
e.di++;
Push(S,e); //换下一个方向探索
curpos=NextPos(e.seat,e.di);
}
}
}
}while(!StackEmpty(S));
return (FALSE);
}
该代码功能是进行迷宫求解,优点是时间和空间的复杂度更小
5. 代码Git提交记录截图
![1232392-20180414193735998-694501506.png](https://i-blog.csdnimg.cn/blog_migrate/502606d498c33552e2dbacfa71f575a1.png)