前面相关操作在这呢,这个函数依托于此
typedef struct Node {
ElementType data;
struct Node * next;
} LNode, * LinkNode;
Status depositeLink(LinkNode L, LinkNode *L1, LinkNode *L2, LinkNode *L3){
LinkNode p = L->next;
free(L);
(*L1) = (LinkNode)malloc(sizeof(LNode));
(*L2) = (LinkNode)malloc(sizeof(LNode));
(*L3) = (LinkNode)malloc(sizeof(LNode));
LinkNode p1 = *L1;
p1->next = p1;
LinkNode p2 = *L2;
p2->next = p2;
LinkNode p3 = *L3;
p3->next = p3;
LinkNode Tail1 = *L1;
LinkNode Tail2 = *L2;
LinkNode Tail3 = *L3;
while (p) {
LinkNode temp = p;
p = p->next;
if((temp->data >= 'a' && temp->data <= 'z') ||
(temp->data >= 'A' && temp->data <= 'Z'))
{
temp->next = Tail1->next;
Tail1->next = temp;
Tail1 = temp;
}else if(temp->data >= '0' && temp->data <= '9'){
temp->next = Tail2->next;
Tail2->next = temp;
Tail2 = temp;
}
else{
temp->next = Tail3->next;
Tail3->next = temp;
Tail3 = temp;
}
}
return OK;
}