C++课后题源程序答案重点第911章.docVIP

  • 4
  • 0
  • 约1.84万字
  • 约 20页
  • 2016-12-10 发布于重庆
  • 举报
C课后题源程序答案重点第911章

第9章 例9.2 顺序表类 #include iostream.h class SeqList{ public: SeqList(int m=10); //构造函数 ~SeqList(){delete []element;} //析构函数 bool IsEmpty(){return length==0;} //判表是否为空 int Length(){return length;} //返回表长 bool Find(int I,char x); //把下标为i的元素取至x int Search(const char x); //返回x在表中的下标 bool Insert(int I,const char x); //在下标i处插入元素x bool Delete(int I,char x); //返回下标为i的元素至x,并删除之 void ClearList(){length=0;} //将表清空 void output(ostream out)const; //输出表中所有元素的值 friend ostream operator(ostream out,const SeqList x); //重载“” private: int Maxsize; int length; char *element; }; SeqList::SeqList(int m){ element=new char[m]; Maxsize=m; length=0; } bool SeqList::Find(int I,char x){ if(i0||ilength-1) return false; x=element[i]; return true; } int SeqList::Search(const char x){ for(int i=0;ilength;i++) if(element[i]==x) return I; return -1; } bool SeqList::Insert(int I,const char x){ if(i0||ilength) return false; //下标越界 if(length==Maxsize) return false; //表已满 for(int k=length-1;k=I;k--) element[k+1]=element[k]; element[i]=x; length++; return true; } bool SeqList::Delete(int I,char x){ if(Find(I,x)){ for(int k=I;klength-1;k++) element[k]=element[k+1]; length--; return true; } else return false; //下标越界 } void SeqList::output(ostream out)const{ for(int i=0;ilength;i++) outelement[i]” “; } ostream operator(ostream out,const SeqList x){ x.output(out); return out; } 例9.3 将一串字符存入一个顺序表,删除其中所有的数字字符。 #include “seqlist.h” void main(){ char str[]=”1C++ 2FORTRAN 3PASCAL 4BASIC”; SeqList L(100); int I; for(i=0;str[i]!=0;i++) if(L.Insert(I,str[i])==false){ cout”插入异常\n”;break;} coutLendl; i=0; char x ; while(iL.Length()){ L.Find(I,x); if(x=’0’x=’9’) L.Delete(I,x); else i++; } coutLendl; } 例9.4单链表的结点类(Node)和单链表类(Chain)的定义。 #include iostream.h class Chain;

文档评论(0)

1亿VIP精品文档

相关文档