- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作为抽象数据类型的数组
顺序表 (Sequential List)
多项式抽象数据类型
(Polynomial ADT)
稀疏矩阵 (Sparse Matrix)
字符串 (String)
;作为抽象数据类型的数组;一维数组的特点;数组的定义和初始化;main ( ) {
szcl a1[3] = { 3, 5, 7 }, *elem;
for ( int i=0, i3, i++ )
cout a1[i].get_value ( ) “\n”; //打印静态数组
elem = a1;
for ( int i=0, i3, i++ ) {
cout elem→get_value( ) “\n”; //打印动态数组
elem++;
}
return 0;
} ;一维数组(Array)类的定义; ~Array( ) { delete [ ]elements;}
ArrayType operator =
( const ArrayType A );
Type operato [ ] ( int i );
ArrayType operator Type * ( ) const
{ return elements; }
int Length ( ) const
{ return ArraySize; }
void ReSize ( int sz );
}; template class Type
void ArrayType::getArray ( ) {
//私有函数:创建数组存储空间
elements = new Type[ArraySize];
if ( elements == 0 )
cerr Memory Allocation Error
endl;
}; template class Type
void ArrayType::Array ( int sz ) {
//构造函数
if ( sz = 0 ) {
cerr Invalid Array Size endl;
return;
}
ArraySize = sz;
getArray ( );
}; template class Type ArrayType::
Array ( const ArrayType x ) {
//复制构造函数
int n = ArraySize = x.ArraySize;
elements = new Type[n];
if ( elements == 0 )
cerr Memory Allocation Error
endl;
Type *srcptr = x.elements;
Type *destptr = elements;
while ( n-- ) * destptr++ = * srcptr++;
};template class Type
Type ArrayType::operator [ ] ( int i ) {
//按数组名及下标i,取数组元素的值
if ( i 0 || i ArraySize-1 )
cerr Index out of Range endl;
return element[i];
}
使用该函数于赋值语句
Position[i] = Position[i -1] + Number[i -1]
; template class Type
void ArrayType::Resize (int sz) {
if ( sz = 0 sz != ArraySize ) {
Type * newarray = new Type[sz];
if ( newarray == 0 )
cerr Memory Allocation Error e
文档评论(0)