第2章习题...............................................................................................................................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(i<1||i>S.last+1)//i为元素编号,有效范围在1--S.last+1之间returnfalse;else{x=S.data[i-1];returntrue;1}}//查找元素x,成功:返回元素编号;失败:返回0intlistLocate(seqListS,elementTypex){inti;for(i=0;i<=S.last;i++){if(S.data[i]==x)returni+1;//找到,转换为元素编号输出}return0;}//插入元素intlistInsert(seqList&S,elementTypex,inti){intk;if(S.last>MAXLEN-1)return0;//表满,返回0elseif(i<1||i>S.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;}}//删除元素intlistDelete(seqList&S,inti){intk;if(S.last==-1)return0;//空表,返回0elseif(i<1||i>S.last+1)return1;//删除元素编号超出范围,返回12else{for(k=i;k<=S.last;k++)S.data[k-1]=S.data[k];S.last--;return2;}}//7.打印表中所有元素voidprintList(seqListL){inti;for(i=0;i<=L.last;i++)cout<=0){cout<<"顺序表已经存在,请先初始化,再输入元素。"<>x;while(x!=-9999){L.last++;L.data[L.last]=x;cout<<"x=";cin>>x;}3}//随机数创建顺序表voidrndCList(seqList&L){inti;intn,m;L.last=-1;cout<<"请输入要产生的随机数个数,n=";cin>>n;if(n>MAXLEN-1){cout<<"您要求产生的随机数个数超出了查找表长度"<>m;srand((unsigned)time(NULL));//产生随机数种子//srand((unsigned)GetTickCount());//产生随机数种子for(i=0;i