欢迎来到天天文库
浏览记录
ID:43368863
大小:230.50 KB
页数:18页
时间:2019-10-02
《各种数据结构模板源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、各种数据结构模板源代码,有了它数据结构随意滴很,会了它,胜利哥哥也拿你没辙无敌汇编著学数据结构学生必备无意中寻求的源代码,最近在学数据结构的同学対于严蔚敏教程的代码很头疼,完成代码也不好找,于是我便把我的宝贝珍藏都拿出来了,希望对大家有用!其中可能有点小错误,白己改一下吧.…我正在一点点的完善…抽象数据类型的数组的实现。#includeusingnamespacestd;#include#defineDefaultSize100templateclassArray{pu
2、blic:Array(intSize=DefaultSize);Array(constArray&x);〜Array(){delete[[elements;}Array&operator=(constArrayvType>&A);Type&operator[](inti);Type*operator*()const{returnelements;}intLength()const{returnArraySize;}voidReSize(intsz);private:Type*elements;intArr
3、aySize;voidgetArray();};templatevoidArray::getArray(){〃获取一个数组elements=newType[ArraySize];if(elements==O){cerr«MMemoryAllocationerrorH«endl;ArraySize=O;return;}}templateArray::Array(intsz){〃带参数构造函数。if(sz<=O){cerr«Hinvalidarraysizen«en
4、dl;ArraySize=O;return;}ArraySize=sz;getArray();}templateArray::Array(constArray&x){〃复制构造函数intn;intArraySize=n=x.ArraySize;elements=newTypefn];if(elements==0){cerrvv”MemoryAllocationerrorH«endl;ArraySize=O;return;}Type*srcptr=x.elements;Type*des
5、tptr=elements;while(n-)*destptr++=*srcptr++;〃好招啊。}templateType&Array::operator[](inti){if(i<011i>ArraySize-1){cerrvv”indexoutofrangeH«endl;return;}returnelements[i];}〃函数本身返回一个引用,指向第i个地址。templatevoidArray::ReSize(intsz){if(sz<=0)cerr«
6、ninvlidarraysizeff«endl;if(sz!=ArraySize){Type*newarray=newTypefsz];if(newarray==0){cerr«nmemoryallocationerrorH«endl;return;}intn=(sz<=ArraySize)?sz:ArraySize;Type*srcptr=elements;Type*destptr=newarray;while(n-)*destptr++=*srcptr++;delete[]elements;elements=newarray
7、;ArraySize=sz;}}intmain(){Arrayt(5);t[3]=3;〃实际上是t[3]是指向elements【3】的,t[3]是elements[31〃的引用;inta=t[3];cout«a;cout«t[3];return0;}顺序表的实现#includeusingnamespacestd;#definedefaultsize10templateclassseqlist{public:seqlist(intmaxsize=defaultsize);//构造
8、函数〜seqlist(){delete[]data;}〃析构函数intlength()const{returnlast+1;}//求长度intfind(type&x)const;〃查找intisin(type&x);〃存在intinsert(type&x,int
此文档下载收益归作者所有