2021/12/15学习总结

  今天学习了链表、栈和队列的概念和思想。然后学习了它们的代码实现,但是还是看不太明白,于是自己用数组根据栈和队列的思想做了一个低配版的栈还有队列。

  我用低配版数组栈尝试做了一下题组中的G题,居然通过了,题目和代码如下

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
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("%d\n",max);
        else printf("-1\n");
    }
    return 0;
}

  然后我又用数组敲了个低配版的队列,试图通过E题,但很可惜没有通过,虽然自己运行时和样例输出一样,但系统表示runtime error,看来低配版还是不太行,题目和代码如下

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
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("%d\n",a[top]);
                top++;
                }
            }
            else if(s[0]=='q')
            {
                if(a[top]==0)printf("this is empty!\n");
                else {
                for(x=top;x<last;x++)
                {
                    printf("%d\n",a[x]);
                    a[x]=0;
                }
                top=0;
                last=0;
                }
            }
        }
    }
    return 0;
}

现在对于栈和队列还有链表的代码实现还是不太清楚,还需要继续学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值