题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=397
——————————————————————————————————————————
源代码:
#include <iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
struct list
{
char val;
list *l;
list *r;
};
int main()
{
char c;
list *cur = NULL,*temp = NULL,*h = NULL;
h = (list *)malloc(sizeof(list));
h->l = NULL;
h->r = NULL;
cur = h;
while((scanf("%c",&c),c)!='\n')
{
if(c == 'L')
{
if(cur && cur->l)
cur = cur->l;
continue;
}
if(c == 'R')
{
if(cur && cur->r)
cur = cur->r;
continue;
}
temp = (list *)malloc(sizeof(list));
temp->l = cur;
temp->r = cur->r;
if(cur->r) //开始忘记加了。。
cur->r->l = temp;
cur->r = temp;
temp->val = c;
cur = temp;
}
cur = h->r;
while(cur)
{
printf("%c",cur->val);
cur = cur->r;
}
return 0;
}