谁给我看看那错了??
一个线性链表分割成为三个循坏链表 问题原题目:已知由一个线性链表表示中含有三类字符的数据元素(如:字母字符、数字字符和其他字符),试编写程序将该线性链表分割成为三个循坏链表,其中每个循坏链表表示的线性表中均只含一类字符。
#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
typedef struct LNode
{
char data;
struct LNode * next;
}LNode,*LinkList;
void CreateList_L(LinkList &L,int n)
{
int i;
LinkList P;
L=(LinkList )malloc(sizeof(LNode));
L->data=0;
L->next=NULL;
for(i=0;i<n;i++)
{
P=(LinkList)malloc(sizeof(LNode));
scanf("%c",&P->data);
getchar();
P->next=L->next;
L->next=P;
}
}
void CreateList_C(LinkList &L)
{
L=(LinkList)malloc(sizeof(LNode));
L->next=L;
}
void LinkList_Divide(LinkList &L,LinkList &A,LinkList &B,LinkList &C)
{
LinkList p,q,r,s;
s=L->next;
A=(LinkList)malloc(sizeof(LNode));p=A;
B=(LinkList)malloc(sizeof(LNode));q=B;
C=(LinkList)malloc(sizeof(LNode));r=C;
while (s)
{
if ( isalpha (s->data) )
{
p->next=s;
p=s;
}
else if ( isdigit (s->data) )
{
q->next=s;
q=s;
}
else
{
r->next=s;
r=s;
}
}
p->next=A;
q->next=B;
r->next=C;
}
void main()
{
LinkList L,A,B,C,P,q;
CreateList_L(L,5);
do
{
P=L->next;
printf("%c ",P->data);
L=L->next;
}while(L->next!=NULL);
printf("\n");
CreateList_C(A);
CreateList_C(B);
CreateList_C(C);
LinkList_Divide(L,A,B,C);
P=A->next;
while(P!=A)
{
printf("%c ",P->data);
P=P->next;
}
printf("\n");
P=B->next;
do
{
printf("%c ",P->data);
P=P->next;
}while(P->next!=B);
printf("\n");
P=C->next;
do
{
printf("%c ",P->data);
P=P->next;
}while(P->next!=C);
printf("\n");
}
[ 本帖最后由 向阳的水仙 于 2010-10-13 21:19 编辑 ]