文档详情

第3章 数组、串和广义表.ppt

发布:2017-03-23约2.89万字共68页下载文档
文本预览下载声明
数据结构算法 Visual C++ 6.0程序集 侯 识 忠 等编著 中国水利水电出版社 第三章 数组、串和广义表 3、0 变长参数表的应用 // 变长参数表的应用VLArgument.cpp #include iostream.h #include iomanip.h #include stdarg.h double average( int, ...); void main() {double w=36.5,x=21.5,y=1.9,z=10.1; coutVLArgument.cpp运行结果:\n; coutsetiosflags(ios::fixed|ios::showpoint) setprecision(1)w = w\nx = x \ny = y\nz = zendl; coutsetprecision(3)The average of w and x is average(2,w,x) \nThe average of w, x, and y is average(3,w,x,y) \nThe average of w, x, y, and z is 单击此处运行程序 average(4,w,x,y,z)endl;cin.get(); } double average(int i, ...) {double total=0; va_list ap; va_start( ap, i ); for(int j=1;j=i;j++) total+=va_arg(ap,double); va_end( ap ); return total/i;} 3、1 建立一维、二维数组的类定义和实现 //建立一维,二维数组的类定义intarray.h class IntArray1{ int size;//数组个数 int *data;//数组指针 void init(int n); IntArray1():size(0),data(0){} friend class IntArray2; public: //构造函数 IntArray1(int n){ init(n);} //析构函数 ~IntArray1(){ delete []data;} //下标操作符重载 //定义为引用以保证既可取值也可赋值 int operator[](int i); //返回数组长度 int size1()const{ return size;} //重新定义数组 void ReArray(int si); }; 单击此处运行程序 coutsetw(3)a[i];} coutendl; a.ReArray(12); cout重定义数组a长度=a.size1()endl; for(i=1;i=12;i++) {a[i]=rand()%10; coutsetw(3)a[i];} coutendl; IntArray2 b(3,4); for(i=1;i=b.size1();i++) for(j=1;j=b.size2();j++) b[i][j]=rand()%12; cout二维数组b:\n; for(i=1;i=b.size1();i++) {for(j=1;j=b.size2();j++) coutsetw(4)b[i][j]; coutendl;} coutendl;cin.get(); } 3、2 稀疏矩阵的类定义与操作 //稀疏矩阵的类定义与操作xishu.h //假设非0元个数的最大值为100 #define MAXSIZE 100 //三元组顺序表 class TSMatrix; class Triple {public: int ii,jj;//行号和列号 ElemType e; friend class TSMatrix; }; class TSMatrix {public: //构造函数 TSMatrix( ) {} //构造函数 //创建一个Mrow行,Mcol列且非零元个数为t的稀疏矩阵 TSMatrix(int Mrow,int Mcol,int t); 单击此处运行程序 //创建三元组顺序表 for (k=0,i=0;i4;i++) for (j=0;j2;j++) if (w[i][j]!=0) { bb.data[k].ii=i;bb.data[k].jj=j; bb.data[k
显示全部
相似文档