初学者求改错啊,我用的是vc6显示没错误,但是出不了结果怎么回事啊?帮忙看看,谢谢啊!!!!!
#include <stdio.h>//递增有序单链表,删除表中相同的多余元素#include <stdlib.h>
#define DATATYPE char
typedef struct node
{
DATATYPE data;
struct node *next;
}LINKLIST;
void deletesame(LINKLIST *L);
int main(void)
{
LINKLIST *head,*L,*p,*q,*t,*k;
char ch;
L=(LINKLIST *)malloc(sizeof(LINKLIST));
head=L,head->next=NULL;
while((ch=getchar())!='$')
{
L=(LINKLIST *)malloc(sizeof(LINKLIST));
L->data=ch;
p=head;
q=head->next;
while(q!=NULL&&q->data<=ch)
{
p=q;
q=q->next;
}
p->next=L;
L->next=q;
}
t=head->next;
while(t!=NULL)
{
printf("%c",t->data);
t=t->next;
}
deletesame(head);
k=head->next;
while(k!=NULL)
{
printf("%c",k->data);
k=k->next;
}
}
void deletesame(LINKLIST *L)
{
LINKLIST *p,*q,*t;
p=L->next;q=L->next->next;
while(p!=NULL)
{
if(p->data==q->data)
{
t=q;
p->next=t->next;
q=q->next;
free(t);
}
p=p->next;
}
}
[ 本帖最后由 来学C语言啊 于 2011-9-18 20:35 编辑 ]