#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef char datatype;
typedef struct node
{
datatype data;
struct node *next;
}linklist;
linklist *CreatListF()
{
char ch;
linklist *head,*s,*r;
head =(linklist*)malloc(sizeof(linklist));
r=head;
printf("请输入链表中的元素,以'#'结束.\n");
while((ch=getche())!='#')
{
s=(linklist*)malloc(sizeof(linklist));
s->data =ch;
r->next =s;
r=s;
}
r->next =NULL;
return head;
}
void sort(linklist *head, linklist *head1, linklist *head2, linklist *head3)
{
linklist *p,*p1,*p2,*p3;
p=head->next ,p1=head1,p2=head2,p3=head3;
while(p!=NULL)
{
if((p->data >='A')&&(p->data<='z'))
{
p1->next =p;
p1=p1->next ;
}
else if((p->data >='0')&&(p->data <='9'))
{
p2->next =p;
p2=p2->next ;
}
else
{
p3->next=p;
p3=p3->next ;
}
p=p->next ;
}
p1->next =NULL;
p2->next =NULL;
p3->next =NULL;
}
void Output(linklist *head)
{
linklist *p=head->next;
printf("\n链表中的元素为:\n");
while(p!=NULL)
{
printf("%c",p->data);
p=p->next ;
}
printf("\n");
}
int main()
{
linklist *head,*head1,*head2,*head3;
head1=(linklist*)malloc(sizeof(linklist));
head2=(linklist*)malloc(sizeof(linklist));
head3=(linklist*)malloc(sizeof(linklist));
head=CreatListF();
sort(head,head1,head2,head3);
Output(head1);
Output(head2);
Output(head3);
getch();
}
链表排序问题
最新推荐文章于 2022-10-22 22:31:29 发布