博客作业03--栈和队列
1.学习总结
2.PTA实验作业
2.1 题目1:7-1 jmu-字符串是否对称
2.2 设计思路(伪代码或流程图)
定义变量i;e;st;
for i=0 to str[i]!='\0'
字符串str进栈
for i=0 to str[i]!='\0'
从头开始扫描str,并出栈元素,将两者进行比较,若不同返回false
扫描完毕返回true
2.3 代码截图
2.4 PTA提交列表说明
2.1 题目2:7-2 符号配对
2.2 设计思路(伪代码或流程图)
定义字符数组str[101];变量flag判断配对正确与否
while(1){
当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束
遍历符号串
当读到左符号,进栈
读到右符号,判断栈是否空并且栈顶是否有匹配的左符号,符号配对错误输出NO,符号配对正确出栈
对每一对符号;如果缺少左符号,则输出?-相应的右符号;如果缺少右符号,则输出相应的左符号-?
如果所有符号配对正确并且所有符号出栈,则输出YES
}
2.3 代码截图
2.4 PTA提交列表说明
2.1 题目3:7-2 银行业务队列简单模拟
2.2 设计思路(伪代码或流程图)
定义i为A窗口,j为B窗口
for k=0 to n
输入数据
while(i,j两窗口人数都<N)
编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口
当不同窗口同时处理完2个顾客时,A窗口顾客优先输出
2.3 代码截图
2.4 PTA提交列表说明
3.截图本周题目集的PTA最后排名
3.1 栈PTA排名
3.2 队列PTA排名
3.3 我的总分:2分
4. 阅读代码
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct LNode{
int x;
int z;
struct LNode *next;
}List;
List *creat(){
List *L,*tail,*p;
L=tail=(List *)malloc(sizeof(List));
int n,m;
char ch;
do{
scanf("%d%d%c",&n,&m,&ch);
p=(List *)malloc(sizeof(List));
p->x=n;
p->z=m;
tail->next=p;
tail=tail->next;
}while(ch!='\n');
tail->next=NULL;
return L;
}
int main(){
List *L,*p;
L=creat();
p=L->next;
int cnt=0;
while(p){
if(p->z==0&&cnt)
break;
else if(p->z ==0&&!cnt){
printf("0 0");
break;
}
if(cnt==0){
printf("%d %d",p->x*p->z,p->z-1);
cnt++;
}
else{
printf(" %d %d",p->x*p->z,p->z-1);
}
p=p->next;
}
system("pause");
return 0;
}
功能:求一元多项式的导数
优点:以与输入相同的格式输出导数多项式非零项的系数与指数;运用了malloc头文件
但是变量的定义比较随便