Anyview 第四章 15年数据结构 下载本文

内容发布更新时间 : 2024/5/21 11:24:12星期一 下面是文章的全部内容请认真阅读。

/* 若参数不合理,则返回ERROR。 */ {

if( NULL==L || i==0 ) return ERROR; int length=LengthLinkList(L); if( i>length )

return ERROR; LinkList p=L; while(--i>0) p=p->next; p->next=NULL; return OK; }

DS04-PE70 /**********

【题目】试写一算法,删除带头结点单链表中所有值 为x的元素,并释放被删结点空间。 单链表类型定义如下: typedef struct LNode { ElemType data; struct LNode *next; } LNode, *LinkList; **********/

Status DeleteX_L(LinkList L, ElemType x)

/* 删除带头结点单链表L中所有值为x的元素, */ /* 并释放被删结点空间,返回实际删除的元素个数。*/ {

if( NULL==L ) return ERROR; LinkList p; p=L;

int count=0;

if( NULL==L->next ) return count; if(NULL==p->next->next) {

if(x==p->next->data) {

count++;

p->next=NULL; }

return count; }

while(p->next->next) {

if(x==p->next->data)

{

count++;

p->next=p->next->next; } else

p=p->next; }

if(x==p->next->data) {

count++;

p->next=NULL; }

return count; }