- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 第五数组
数组 廖勇毅 替换子串 void StrReplace(SString S, SString T, SString V) { unsigned int tlen = StrLength(T); unsigned int vlen = StrLength(V); unsigned int s = 0; unsigned int idx; while((idx = SubIndex(S, T, s)) != -1 s StrLength(S)) { StrDelete(S, idx, tlen); StrInsert(S, idx, V); s = idx + vlen; } } 数组 数组的存贮方式 二维数组的访问: LOC(i,j)=LOC(0,0)+(b2*i + j)L b2是第2维的大小 多维数组访问: LOC(j1,j2,…,jn)=LOC(0,0,…,0)+ (b2*…*bn*j1 + b3*…bn*j2 + …+ bn*jn-1 + jn)L 可变多维数组的实现 定义 #define MAX_ARRAY_DIM 8 typedef int ElemType; typedef struct{ ElemType *base; int dim; int *bounds; int *constants; }Array; 初始化 int InitArray(Array A, int dim, ...){ if(dim 1 || dim MAX_ARRAY_DIM) return 0; A.dim = dim; A.bounds = (int*)malloc(dim * sizeof(int)); if(!A.bounds) return 0; int elemtotal = 1; va_list ap; va_start(ap, dim); for(int i = 0; i dim; i++){ A.bounds[i] = va_arg(ap, int); if(A.bounds[i] 0) return 0; elemtotal *= A.bounds[i]; } va_end(ap); A.base = (ElemType*)malloc(elemtotal * sizeof(ElemType)); if(!A.base) return 0; A.constants = (int*)malloc(dim * sizeof(int)); if(!A.constants) return 0; A.constants[dim - 1] = 1; for(i = dim - 2; i =0; i--){ A.constants[i] = A.bounds[i + 1] * A.constants[i + 1]; } return 1; } 定位 int Locate(Array A, va_list ap, int off){ int ind; off = 0; for(int i = 0; i A.dim; i++){ ind = va_arg(ap, int); if(ind 0 || ind = A.bounds[i]) return 0; off += A.constants[i] * ind; } return 1; } 赋值 int Assign(Array A, ElemType e, ...){ int off; va_list ap; va_start(ap, e); if(!Locate(A, ap, off)) return 0; va_end(ap); *(A.base + off) = e; return 1; } 取值 int Value( Array A, ElemType e, ...){ int off; va_list ap; va_start(ap, e); if(!Locate(A, ap, off)) return 0; va_end(ap); e = *(A.base + off); return e; } 课堂练习: 1)定义一个三维数组,每个维度大小分别为2,3,4; 2)用下标之和给三维数组赋值; 3)输出三维数组所有元素的值,要求格式为:A[1][2][3] = 6 课后练习:实现三角矩阵的赋值与取值。
您可能关注的文档
- 指定科目考试网路选填志愿说明.ppt
- 指数函数小香袋.ppt
- 指数函数绝情谷.ppt
- 指数顶底攻防策略.ppt
- 指针详解.ppt
- 指数函数隐龙谷.ppt
- 按钮经典样式.ppt
- 挡土结构lyl.ppt
- 捕获光能色素结构.ppt
- 探索碱的性质1.ppt
- 2024届湖南省长沙市长郡中学高三一模政治试题及答案 .pdf
- 2024年重大安全隐患排查及整改制度(四篇) .pdf
- 2024年高支模安全监理实施细则(三篇) .pdf
- Nb3Sn_金属间化合物材料的制备技术及其研究发展现状和发展趋势.pdf
- 2024年高考物理总复习第一部分知识点梳理第五章万有引力与宇宙航行第2.pdf
- 2024年食堂食品安全工作制度3篇 .pdf
- 2024年高一生物学考模拟卷02 .pdf
- 2024年黑龙江省齐齐哈尔市龙沙区中考二模英语试题(解析版) .pdf
- 2024版安全监管总局印发生产安全事故应急预案评审指南 .pdf
- 2024清明节祭扫烈士墓活动总结(35篇) .pdf
文档评论(0)