void Split(LinkNode*& L,ElemType x)//将单链表按照基准划分
{
LinkNode* l;
l = (LinkNode*)malloc(sizeof(LinkNode));
LinkNode* c;
c = (LinkNode*)malloc(sizeof(LinkNode));
l->next = c;
c->data = x;
c->next = NULL;
LinkNode* s = L->next;
LinkNode* j;
LinkNode* m=l;
LinkNode* k = c;
if(s == NULL)
printf("空链表");
else
{
while(s != NULL)
{
if(s->data < x)
{
j = (LinkNode*)malloc(sizeof(LinkNode));
m->next = j;
j->next = c;
m = m->next;
s = s->next;
}
else if(s->data > x)
{
j = (LinkNode*)malloc(sizeof(LinkNode));
j->next = k->next;
k->next = j;
s = s->next;
}
else
s = s->next;
}
}
LinkNode* v = l;
while(v != NULL )
{
printf("%c",v->data);
v = v->next;
}
}
int main()
{
LinkNode* h;
ElemType e;
ElemType x = 'd';
int n = 8;
ElemType a[] = "acbfedgh";
printf("依次插入acbfedgh元素\n");
CreateListR(h,a,n);
DispList(h);
Split(h,x);
DestroyList(h);
system("pause");
return 1;
}