Untitled

 avatar
unknown
plain_text
3 years ago
1.6 kB
7
Indexable
#include<stdio.h>
#include<stdlib.h>
typedef struct _node{
    char data;
    struct _node* left;
    struct _node* right;
}Node;
Node *temp,*head=NULL;
Node* creatnode(char c){
    Node* new=(Node*)malloc(sizeof(Node));
    if(head==NULL){
        head=new;
        head->left=NULL;
    }
    new->data=c;
    new->left=temp;
    if(temp->right!=NULL){
        new->right=temp->right;
        temp->right->left=new;
        temp->right=new;
    }else if (temp->right==NULL){
        new->right=NULL;
        temp->right=new;
    }
    return new;
}

int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n;
        scanf("%d",&n);
        while(n--){
            char c;
            scanf("%c",&c);
            switch(c){
                case 'L':
                    if(temp->left!=NULL)temp=temp->left;
                    break;
                case 'R':
                    if(temp->right!=NULL)temp=temp->right;
                    break;
                case 'B':
                    temp->left->right=temp->right;
                    temp->right->left=temp->left;
                    Node *cur=temp->left;
                    free(temp);
                    temp=cur;
                    break;
                default:
                    temp=creatnode(c);
                    break;
            }
        }
        temp=head;
        Node* del;
        while(temp!=NULL){
            printf("%c",temp->data);
            del=temp;
            temp=temp->right;
            free(del);
        }
        printf("\n");
    }
Editor is loading...