下面程序段为删除循环链表中第一个info域值等于x的结点,请填上程序中缺少的部分。循环链表的结构如图C一6所示: struct node{int info;struct node*link;) int Delete(struct node*head,in

admin2013-12-25  73

问题 下面程序段为删除循环链表中第一个info域值等于x的结点,请填上程序中缺少的部分。循环链表的结构如图C一6所示:

struct node{int info;struct node*link;)
int Delete(struct node*head,int X)
{
  struct node *P,*q;/*p:当前处理的结点;q:p的前趋结点*/
  if(!head)return(0);
  if(head→link==head)
  {
    if(head→info==X)
    (free(head);
    head=NUIL;
    return(X)
    }
  return(0);
}   
P=head;q=head;
while(q→link!=head)q=(1);
while(p→link!=head)
{if(p→info==x)
  f(2);
    if(P==head)head=(3);
    free(P);
    return(X);
  }
    else{q=P;(4);}
    }
    return(0);
    }

选项

答案(1)q一>link (2)q一>link=P一>link (3)p一>link (4)p=P一>next

解析
转载请注明原文地址:https://kaotiyun.com/show/YlVx777K
0

最新回复(0)