uva11988数组模拟单向链表

来源:互联网 发布:淘宝账号登录不了 编辑:程序博客网 时间:2024/05/29 08:03


1)

#include <iostream>#include <string.h>using namespace std;const int maxn=100000+5;int next[maxn];int cur,last;//next[0]=0;//int cur=0;//int last=0;char s[maxn];int main(){    while(scanf("%s",s+1)==1){        int len=strlen(s+1);//从起始地址开始计算个数        last=cur=0;        next[0]=0;        for(int i=1;i<=len;i++){            if(s[i]=='[')                cur=0;            else if(s[i]==']')                cur=last;            else{                next[i]=next[cur];//从当前字符指向上一个字符所指向的位置(刚开始即指向0,相当于指向一个尾节点)                next[cur]=i;//从光标cur的位置指向当前字符                if(cur==last)//记录当前最后一个字符                    last=i;                cur=i;//将cur移动到当前字符            }        }        for(int i=next[0];i!=0;i=next[i]){            cout<<s[i];        }        cout<<endl;        memset(next,0,sizeof(next));        //cur=last=0;    }    return 0;}



0 0
原创粉丝点击