目录树

来源:互联网 发布:淘宝怎么增加买家信用 编辑:程序博客网 时间:2024/05/19 05:37

xjb水过。。。

#include <stdio.h>#include <string.h>#include <stdlib.h>char s[10005][280];struct node{    int cnt;    char str[280];}ss[10005];int cmp(const void *a ,const void *b){    return strcmp((*(struct node *)a).str,(*(struct node *)b).str);}int main(){    int n;    scanf("%d",&n);    for(int i=0;i<n;i++)        scanf("%s",s[i]);    puts("root");    for(int i=0;i<n;i++)    {        ss[i].cnt=0;        int prej=0;        for(int j=0;s[i][j]!='\0';j++)        {            if(s[i][j]=='\\')            {                char tmp[1100];int tt=1;                tmp[0]='%';                for(int k=prej;k<j;k++)                    tmp[tt++]=s[i][k];                for(int k=0;k<tt;k++)                    ss[i].str[ss[i].cnt++]=tmp[k];                ss[i].str[ss[i].cnt++]='!';                prej=j+1;            }        }        for(int j=prej;s[i][j]!='\0';j++)            ss[i].str[ss[i].cnt++]=s[i][j];        ss[i].str[ss[i].cnt]='\0';    }    qsort(ss,n,sizeof(ss[0]),cmp);    printf("  ");    int num=1;    for(int j=0;j<ss[0].cnt;j++)    {        if(ss[0].str[j]=='%')continue;        if(ss[0].str[j]=='!')        {            num++;            if(j!=ss[0].cnt-1)            {                puts("");                for(int k=0;k<2*num;k++)                    putchar(' ');            }        }        else putchar(ss[0].str[j]);    }    for(int i=1;i<n;i++)    {        if(strcmp(ss[i].str,ss[i-1].str)==0)continue;        int pp=0;num=1;        for(int j=0;j<ss[i-1].cnt;j++)        {            if(ss[i].str[j]!=ss[i-1].str[j])                break;            if(ss[i].str[j]=='!')            {                num++;                pp=j+1;            }        }        puts("");        for(int j=0;j<2*num;j++) putchar(' ');        for(int j=pp;j<ss[i].cnt;j++)        {            if(ss[i].str[j]=='%')continue;            if(ss[i].str[j]=='!')            {                num++;                if(j!=ss[i].cnt-1)                {                    puts("");                    for(int k=0;k<2*num;k++)                        putchar(' ');                }            }            else putchar(ss[i].str[j]);        }    }    puts("");}
0 0
原创粉丝点击