#include <iostream>
using namespace std;
typedef struct Node
{
char val;
Node *next;
}LST;
LST *mycreat(LST *head,char v)
{
LST *p=new LST;
LST *q=new LST;
q=head;
while(q->next)
{
q=q->next;
}
p->val=v;
q->next=p;
p->next=NULL;
return head;
}
void myprint(LST *head)
{
LST *p=NULL;
p=head->next;
while(p)
{
printf("%c",p->val);
p=p->next;
}
printf("\n");
return ;
}
int main()
{
int n;
while(scanf("%d",&n))
{
if(n==0) break;
while(n--)
{
LST *mhead=new LST;
LST *ahead=new LST;
LST *head=new LST;
mhead->next=NULL;
ahead->next=NULL;
head->next=NULL;
char str[1001];
scanf("%s",str);
int len=strlen(str);
int i;
for (i=0;i<len;i++)
{
if (str[i]>='0'&&str[i]<='9')
{
mhead=mycreat(mhead,str[i]);
}
else if (str[i]>='a'&&str[i]<='z')
{
ahead=mycreat(ahead,str[i]);
}
else
{
head=mycreat(head,str[i]);
}
}
if(ahead->next) myprint(ahead);
if(mhead->next) myprint(mhead);
if(head->next) myprint(head);
printf("\n");
}
}
return 0;
}
单链表的拆分
最新推荐文章于 2023-11-09 23:51:48 发布