北邮新OJ91

来源:互联网 发布:java的输入流和输出流 编辑:程序博客网 时间:2024/06/05 19:47

http://code.bupt.edu.cn/problem/p/91/

#include<stdio.h>#include<string.h>#include<string>#include<vector>#include<iostream>using namespace std;struct pp{    string name;//目录名    int no;//目录编号    vector<int> c;//子目录编号    vector<string> v;//目录下的文件名};int main(){    int N;    scanf("%d",&N);    for(int k=1;k<=N;k++)    {        int n;        scanf("%d",&n);        pp * s;        s=new pp[101];//初始化一个数组        int num=1;        s[1].name="root";        s[1].no=1;        for(int i=1;i<=n;i++)//n个操作        {            getchar();            char tmp[101];            scanf("%s",tmp);            if(strcmp(tmp,"CREATEFILE")==0)//创建文件            {                char tmp1[101],tmp2[101];                scanf("%s %s",tmp1,tmp2);                string tt=tmp2;                for(int i=1;i<=num;i++)                    if(tt==s[i].name)                    {                        string file=tmp1;                        s[i].v.push_back(file);                    }            }            else if(strcmp(tmp,"CREATEDIR")==0)//创建目录            {                char tmp1[101],tmp2[101];                scanf("%s %s",tmp1,tmp2);                string tt=tmp2;                for(int i=1;i<=num;i++)                    if(tt==s[i].name)                    {                        s[num+1].name=tmp1;                        s[num+1].no=num+1;                        s[i].c.push_back(num+1);                        num++;                    }            }            else if(strcmp(tmp,"LISTFILE")==0)//打印目录下文件            {                char tmp1[101];                scanf("%s",tmp1);                string tt=tmp1;                for(int i=1;i<=num;i++)                    if(tt==s[i].name)                        for(int j=0;j<s[i].v.size();j++)                            cout<<s[i].v[j]<<endl;            }            else if(strcmp(tmp,"LISTDIR")==0)//打印目录下的目录            {                char tmp1[101];                scanf("%s",tmp1);                string tt=tmp1;                for(int i=1;i<=num;i++)                    if(tt==s[i].name)                        for(int j=0;j<s[i].c.size();j++)                            cout<<s[s[i].c[j]].name<<endl;            }            else                ;        }    }    //system("pause");    return 0;}


0 0