以下为求单链表表长的定位运算,分析算法,请在处填上正确的语句。int locate_lklist(lklist head,datatype x)/*求表head中第一个值等于x的结点的序号。不存在这种结点时结果为0*/{p=head;j=0;while((1) ){p=p->next;j++;}if ( (2))return((3) );elsereturn(0);}
查看答案
以下为单链表按序号的查找运算,分析算法,请在处填上正确的语句。Pointer find_lklist(lklist head,int i){p=head;j=0;while(){p=p->next;j++;}if(i==j)return(p);elsereturn(NULL);}
以下为单链表的创建算法,分析算法,请在处填上正确的语句。lklist create_lklist()//直接实现的建表算法{head=malloc(size);p=head;scanf(“%f”,&x);while(x!=’$’){q=malloc(size);q->data=x;p->next=q;(1) ;scanf(“%f”,&x);} (2);return(head);}
若设单链表结点的结构为ListNode = (data, next),阅读以下函数:int unknown ( ListNode* Ha){// Ha为指向带表头结点的单链表的表头指针。intn = 0;ListNode *p = Ha->next;while( p!= 0 ){n++;p = p->next;}returnn;}若用单链表表示的线性表为L = ( a, b, c, d, e, f, g),其表头指针为L,则执行语句unknown (L)之后输出的结果是。
阅读下列算法,写出算法功能:voidunknown (ListNode *first ){ListNode*p= first->next,*q,*r;if(p!= 0 &&p->next != 0 ){q=p->next;p->next =0;while(q->next != 0 ){r=q->next;q->next =p;p=q;q=r;}q->next =p;first =q;}elsefirst =p;}算法的功能:____________________________________