您的位置:首页 > 其它

链表 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)

2016-01-14 13:17 609 查看
题目传送门

题意:训练指南P244

分析:链表模拟,维护链表的head和tail指针

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;
struct Link_list    {
char ch;
Link_list *nex;
}link_list
;

int main(void)  {
while (true) {
Link_list *head = link_list;
Link_list *q = link_list + 1;
head -> nex = NULL;
Link_list *tail = head, *pos = head;
char c;
while (true)  {
c = getchar ();
if (c == '\n')  break;
if (c == EOF)   return 0;
if (c != '[' && c != ']') {
Link_list *p = q++;
p -> ch = c;
p -> nex = pos -> nex;
pos -> nex = p;
pos = p;
if (tail -> nex != NULL)    tail = pos;
}
else if (c == '[')  pos = head;
else    pos = tail;
}
Link_list *p = head -> nex;
while (p)   {
printf ("%c", p -> ch);
p = p -> nex;
}
puts ("");
}

return 0;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: