博客作业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头文件
但是变量的定义比较随便
posted @ 2018-04-14 21:43  折原临也  阅读(280)  评论(3编辑  收藏  举报