/*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/
Node *CreateAtTail(DataType a[],int n)
{
int i;
Node *first,*s,*r;
first=InitList(); //初始化单链表
r=first;
for(i=0;i<n;i++)
{
s=(Node *)malloc(sizeof(Node));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
return first;
}
DataType Delete(Node *first,int i)
{
Node *p=first,*q;//工作指针p指向头结点,q存储带删除结点的指针
int count=0;
DataType x;
/*************Begin************************/
while(p->next!=NULL&&count<i-1)
{
p=p->next;
count++;
}
if(p->next!=NULL&&count==i-1)
{
q=p->next;
x=q->data;
p->next=q->next;
free(q);
return x;
}
else
{ printf("要删除的结点位置不正确");
exit(0);
}
/*************End***************************/
}