1 / 67
文档名称:

数据结构与算法.ppt

格式:ppt   页数:67
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构与算法.ppt

上传人:12344 2014/8/22 文件大小:0 KB

下载得到文件列表

数据结构与算法.ppt

文档介绍

文档介绍:数据结构与算法
-
作为抽象数据类型的数组
一维数组
一维数组的示例
一维数组的特点
连续存储的线性聚集(别名向量)
除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。
除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。
数组的定义和初始化
#include <>
class szcl {
int e;
public:
szcl ( ) { e = 0; }
szcl ( int value ) { e = value; }
int get_value ( ) { return e; }
}
main ( ) {
szcl a1[3] = { 3, 5, 7 }, *elem;
for ( int i=0, i<3, i++ )
cout << a1[i].get_value ( ) << “\n”; //打印静态数组
elem = &a1;
for ( int i=0, i<3, i++ ) {
cout << elem→get_value( ) << “\n”; //打印动态数组
elem++;
}
return 0;
}
一维数组(Array)类的定义
#include <>
#include <>
template <class Type>
class Array {
Type *elements; //数组存放空间
int ArraySize; //当前长度
void getArray ( ); //建立数组空间
public:
Array(int Size=DefaultSize );
Array(const Array<Type>& x );
~Array( ) { delete [ ]elements;}
Array<Type> & operator =
( const Array<Type> & A );
Type& operato [ ] ( int i );
operator Type * ( ) const
{ return elements; }
int Length ( ) const
{ return ArraySize; }
void ReSize ( int sz );
}
template <class Type>
void Array<Type>::getArray ( ) {
//私有函数:创建数组存储空间
elements = new Type[ArraySize];
if ( elements == 0 )
cerr << "Memory Allocation Error"
<<endl;
}
一维数组公共操作的实现
template <class Type>
void Array<Type>::Array ( int sz ) {
//构造函数
if ( sz <= 0 ) {
cerr << "Invalid Array Size" << endl;
return;
}
ArraySize = sz;
getArray ( );
}
template <class Type> Array<Type>::
Array ( const Array<Type> & x ) {
//复制构造函数
int n = ArraySize = ;
elements = new Type[n];
if ( elements == 0 )
cerr << "Memory Allocation Error"
<< endl;
Type *srcptr = ;
Type *destptr = elements;
while ( n-- ) * destptr++ = * srcptr++;
}