数据结构常考算法大全HL 是单链表的头指针,试写出删除头结点的算法
ElemTypeDeleFront(LNode*&HL){if(HL==NULL){cerrvv"空表"vvendl;exit(1);}LNode*p=HL;HL=HL->next;ElemTypetemp=p->data;deletep;returntemp;}统计出单链表 HL 中结点的值等于给定值 X 的结点数
intCountX(LNode*HL,ElemTypex){inti=0;LNode*p=HL;//i 为计数器while(p
=NULL){if(P->data==x)i++;p=p->next;}//while,出循环时 i 中的值即为 x 结点个数returni;}//CountX写算法,将一个结点类型为 Lnode 的单链表按逆序链接,即若原单链表中存储元素的次序为 a1,an-1,an,则逆序链接后变为,an,an-1,al
Voidcontrary(Lnode*&HL){Lnode*P=HL;HL=NULL;While(p
=null){Lnode*q=p;P=pfnext;qfnext=HL;HL=q;}}34.阅读下列函数 arrange()intarrange(inta[],int1,inth,intx){//I 和 h 分别为数据区的下界和上界inti,j,t;i=1;j=h;while(iwhile(i=x)j--;while(i=x)i++;if(i{t=a[j];a[j]=a[i];a[i]=t;}}if(a[i];elsereturni-1;}(1)写出该函数的功能;(2)写一个调用上述函数实现下列功能的算法:对一整型数组 b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的