1第2章习题2
1若将顺序表中记录其长度的分量listlen改为指向最后一个元素的位置last,在实现各基本运算时需要做那些修改
【解】//用线性表最后一个元素的下标last代替listLen实现顺序表#defineMAXLEN100typedefintelementType;typedefstructsllLast{elementTypedata[MAXLEN];intlast;}seqList;//初始化voidinitialList(seqList&S){S
last=-1;}//求表长度intlistLength(seqListS){returnS
last+1;}//按序号取元素boolgetElement(seqListS,inti,elementType&x){if(iS
last+1)//i为元素编号,有效范围在1--S
last+1之间returnfalse;else{x=S
data[i-1];returntrue;1}}//查找元素x,成功:返回元素编号;失败:返回0intlistLocate(seqListS,elementTypex){inti;for(i=0;iMAXLEN-1)return0;//表满,返回0elseif(iS
last+2)return1;//插入位置查处范围,返回1else{for(k=S
last;k>=i-1;k--)S
data[k+1]=S
data[k];S
data[i-1]=x;S
last++;return2;}}//删除元素intlistDelet