求高手速回,在数据结构课本上的程序
程序:#include <stdio.h>
#include <stdlib.h>
typedef int DataType;
typedef struct Node
{
DataType data;
struct Node *next;
} SLNode;
void LiistInitiate(SLNode **head)
{
*head=(SLNode*)malloc(sizeof(SLNode));
(*head)->next=NULL;
}
void DestroyList(SLNode **head)
{
SLNode *pl,*P=*head;
while(P != NULL)
{
pl = P;
P= p->next;
free(pl);
}
*head=NULL;
}
int ListGet(SLNode *head,int i,DataType *x)
{
SLNode *p;
int j;
p=head;
j=-1;
while(P->next!=NULL && j<i)
{P = P->next;j++;}
if(j!=i)
{printf("error");return 0;};
*x=p->data;
return 1;
}
int ListDelete(SLNode *head,int i,DataType *x)
{
SLNode *p,*s;
int j;
p=head;
j=-1;
while(p->next!=NULL&&p->next->next!=NULL&&j<i-1)
{P= P->next;
j++;
}
if(j!=i-1)
{
printf("error");
return 0;
}
s=p->next;
*x=s->data;
p->next=p->next->next;
free(s);
return 1;
}
int ListInsert(SLNode *head, int i,DaataType x)
{
SLNode *p,*q;
int j;
p=*head;
j=-1;
while(p->next!-NULL&&j<i-1)
{
p=p->next;
j++;
}
if(j!=i-1)
{printf("error");return 0;}
q=(SLNode*)malloc(sizeof(SLNode));
q->data=x;
q->next=p->next;
p->next=q;
return 1;
}
void main(void)
{
int i, x;
SLNode *head;
ListInitiate(&head);
for (i=0; i<10; i++)
ListInsert(head,i,i+1);
ListDelete(head,4,&x);
for(i=0;i<ListLength(head);i++)
{
ListGet(head,i,&x);
printf("%d ",x);
}
DestroyList(&head);
}
编译的结果:
F:\1\110620\复件 1.c(24) : error C2065: 'p' : undeclared identifier
F:\1\110620\复件 1.c(24) : error C2223: left of '->next' must point to struct/union
F:\1\110620\复件 1.c(36) : error C2065: 'P' : undeclared identifier
F:\1\110620\复件 1.c(36) : error C2223: left of '->next' must point to struct/union
F:\1\110620\复件 1.c(37) : error C2223: left of '->next' must point to struct/union
F:\1\110620\复件 1.c(51) : error C2223: left of '->next' must point to struct/union
F:\1\110620\复件 1.c(67) : error C2146: syntax error : missing ')' before identifier 'x'
F:\1\110620\复件 1.c(67) : error C2081: 'DaataType' : name in formal parameter list illegal
F:\1\110620\复件 1.c(67) : error C2061: syntax error : identifier 'x'
F:\1\110620\复件 1.c(67) : error C2059: syntax error : ';'
F:\1\110620\复件 1.c(67) : error C2059: syntax error : ')'
F:\1\110620\复件 1.c(68) : error C2449: found '{' at file scope (missing function header?)
F:\1\110620\复件 1.c(85) : error C2059: syntax error : '}'
执行 cl.exe 时出错.