C 程序设计教程 第3版资源 .ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 程序设计教程 第3版资源

class List //线性表类定义 { public: List(int size =100); List(const List l); ~List(){} bool insert(int pos, int value); bool deleteElement(int pos); bool getElement(int pos, int value); bool setElement(int pos,int value); void clear(); bool isEmpty()const; bool isFull()const; bool find(int value) const; int getLength()const; private: SArray element; int length; }; 例9-5 基于数组的线性表类声明与实现。 (续) 例9-5 基于数组的线性表类声明与实现。 (续) 在这个线性表类的声明中,我们使用了前面实现的数组类对象element作为线性表的数组存储器,用length来表示线性表长度。 这个长度是线性表当前有效元素个数,不是数组的长度。 注 这个线性表类通过构造函数获得一个线性表,对于一个新表,其当前元素个数和当前元素位置都置为0 : List::List(int size) { if(element.getLength()!=size) //用到了SArray类的getLength()函数 { element.setLength(size); //用到了SArray类的setLength()函数 } length=0; } (续) 通过拷贝构造函数,可以完成一个线性表对另个线性表的构造(新线性表的属性应该和原线性表相同): List::List(const List l) { element=l.element; //用到了SArray类的“=”重载函数 length=l.length; } 下面给出这个线性表类其他成员函数的实现代码 (线性表所用到的数组类SArray的声明及实现见例9-1) //在位置pos后插入值为value的新元素: bool List::insert(int pos,int value) { int i; if(isFull()) {//线性表状态判断 coutFull!endl; return false; } (续) if(!isEmpty()){//线性表状态判断 if(pos0||poslength-1) {//判断插入位置是否合法 coutPosition error!endl; return false; } for(i=length;ipos+1;i--){//pos+1后面元素依次后移 element[i]=element[i-1]; //使用SArray数组的[]运算符重载 } element[pos+1]=value;//新元素插入pos+1位置 length++;//表长自增 return true; } else{//空表时的插入过程 if(pos!=0) { cout“Invalid position!”endl; return false; } element[0]=value; //使用SArray数组的[]运算符重载 length++; return true; } } ? (续) //删除线性表中的指定位置元素: bool List::deleteElement(int pos) { int i; if(!isEmpty())//线性表状态判断 { if(pos0||poslength-1) { coutInvalid position!endl; return false; } for(i=pos;ilength-1;i++) element[i]=element[i+1]; length--; return true; } return false; } bool List::getElement(int pos, int value){ //获取线性表指定位置的元素值 if(!isEmpty()){//线性表状态判断 if(pos0||poslength-1){ coutInvalid position!endl; return false; } value=element[pos];//使用SArray数组的

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档