这种问题建议用代码段贴代码,不要用截图。
补充如下,如有帮助,请帮忙采纳一下,谢谢。
//(1)初始化空表
L->next = NULL;
//(2)尾插建立单链表
rear->next = p;
rear = p;
//(3)单链表输出
printf("%d ",p->data);
p = p->next;
//(4)求单链表长度(不包括头结点)
p=L->next;//如果算头结点,就把这一行注释掉
while(p)
{
count++;
p = p->next;
}
//(5)//插入元素(i最小为1)
int ListInsert(LinkP L,int i,ElemType x)
{
LinkP p=L;
if(i<1) return 0;
i--;
while (i-- && p)
{
p = p->next;
}
if(p == NULL) return 0;
LinkP t = (LinkP)malloc(sizeof(LinkNode));
t->data = x;
t->next = p->next;
p->next = t;
return 1;
}
//(6)//删除
int ListDelete(LinkP L ,int i)
{
LinkP rear,p=L;
if(i < 1) return 0;
rear = p->next;
i--;
while(i-- && p)
{
p = rear;
if(rear)
rear = rear->next;
}
if(p && rear)
{
p->next = rear->next;
free(rear);
rear = 0;
return 1;
}
return 0;
}
//(7)//删除偶数节点
LinkP DeleteEven(LinkP L)
{
LinkP p,q;
LinkP t;
p= L;
q = L->next;
while(q)
{
if(q->data%2 == 0)
{
p->next = q->next;
free(q);
q = p->next;
}else
{
p = q;
q = q->next;
}
}
return L;
}