数据结构链表 急急急急急急啊

来源:百度知道 编辑:UC知道 时间:2024/06/12 09:44:54
要删除链表中“数值”为偶数的元素
哪位高手可以补充一下
void DeleteList(LinkList &s)
{ }
中的空白啊

#include "stdafx.h"
#include <stdlib.h>

typedef struct LNode{
int data;
LNode *next;

}LNode,*LinkList;

void InitList(LinkList &s)
{

s = (LNode*)malloc(sizeof(LNode));
s->data=0;
s->next=NULL;

}

void CreateList(LinkList &s,int n)
{

LinkList p;
int k;
for(int i=1;i<=n;i++)
{
p=(LNode*)malloc(sizeof(LNode));
scanf("%d",&k);
p->data=k;
p->next=s->next;
s->next=p;
}
}

void DeleteList(LinkList &s)
{

}

void PrintList(LinkList s)
{
LinkList p=s;
while(p)
{
printf("打印%d\n",p->data);
p=p->next;

}
}

void DeleteList(LinkList s)
{
LinkList p=s;//p指向头结点
LinkList q=s->next;//q指向第一个结点
LinkList k;//k指向已删除的结点,以便释放空间
while(q)
{
while(q&&q->data%2)//如果q存在,并且是不是偶数则指针后移
{p=q;
q=q->next;
}
if(q->data%2==0)//如果找到了偶数结点q则删除
{
p->next=q->next;//删除结点q
k=q;//k指向已经删除的结点
q=q->next;//q指向新的未找结点
k->next=NULL;//把已删除的结点与原链表彻底断开
free(k);//释放已删除的那个结点
}
}
}

才给5分!不干!!!

void DeleteList(LinkList &s)
{
LNode *p,*tmp;
p=s;
while(p)
{
tmp=p->next;
free(p);
p=tmp;
}
}

谁要是给你填得对,我就服他了