今天学习了链表、栈和队列的概念和思想。然后学习了它们的代码实现,但是还是看不太明白,于是自己用数组根据栈和队列的思想做了一个低配版的栈还有队列。
我用低配版数组栈尝试做了一下题组中的G题,居然通过了,题目和代码如下
#include#include #include int main() { int i,a[200],b[200]; int n; while(scanf("%d",&n)!=EOF) { int max=-1,t=0,k=1; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { while(k<=a[i]) { b[t]=k; t++; k++; } if(t>max)max=t; if(a[i]==b[t-1])t--; } if(t==0)printf("%dn",max); else printf("-1n"); } return 0; }
然后我又用数组敲了个低配版的队列,试图通过E题,但很可惜没有通过,虽然自己运行时和样例输出一样,但系统表示runtime error,看来低配版还是不太行,题目和代码如下
#include#include #include int main() { int T; while(scanf("%d",&T)!=EOF) { int a[200]={0},last=0,top=0,x; char s[10]; for(int i=1;i<=T;i++) { gets(s); if(s[0]=='e') { a[last]=s[8]-'0'; last++; } else if(s[0]=='d') { if(a[top]==0)printf("this is empty!n"); else { printf("%dn",a[top]); top++; } } else if(s[0]=='q') { if(a[top]==0)printf("this is empty!n"); else { for(x=top;x 现在对于栈和队列还有链表的代码实现还是不太清楚,还需要继续学习



