- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * status listinsert (SqList L,int i,ElemtType e) { if (i1 || iL.len+1) return ERROR; // i值不合法 if (L.len = = L.lsize) { // 当前存储空间已满,增加分配 newbase = (Elemtype * ) realloc(L.elem, (L.lsize + LISTINCREMENT) * (sizeof(ElemType)); if (!newbase) exit(overflow); // 存储分配失败 L.elem = newbase; // 新基址 lsize += LISTINCREMENT; } // 增加存储容量 q = (L.elem[i-1]); // q为插入位置 for (p = (L.elem[L.len-1]);p=q;--p) *(P+1) = * P; // 元素后移 *q = e; ++L.len; // 插入e,表长增1 return OK; } //listinsert 注意:C语言中数组的下标从“0”开始,因此,若L是SqList类型的顺序表,则表中第i个数据元素是L.elem[i-1]。 21 18 30 75 42 56 87 21 18 30 75 例:ListInsert_Sq(L, 5, 66) L.len-1 0 p p p q 87 56 42 66 q = (L.elem[i-1]); for (p = (L.elem[L.len-1]); p = q; --p) *(p+1) = *p; *q = e; p for (j=L.len-1; j=i-1; j—) L.elem[j+1]=L.elem[j]; L.elem[i-1]=e 考虑移动元素的平均情况: 假设在第i个元素之前插入的概率为 Pi,则在长度为n 的线性表中插入一个元素所需移动元素次数的期望值为: 若假定在线性表中任何一个位置上进行插入的概率都是相等的,则移动元素的期望值为: ? + - = + = 1 1 ) 1 ( n i i is i n p E ? + - + = + = 1 1 ) 1 ( 1 1 n i is i n n E 2 n = a1 a2 … ai-1 ai ai+1 … an 例2:从线性表中删除第i个位置的元素。 分析:删除元素时,线性表的逻辑结构发生什么变化? (a1,…, ai-1, ai, ai+1,…, an) 改变为 ai-1, ai, ai, ai+1 ai-1, ai+1 (a1,…, ai-1, ai+1,…, an) ai+1 … an a1 a2 … ai-1 表长度减1 删除的过程为: (1)检查i的合法性; (2)删除第i个位置的元素,即使后面第i至第n个元素(共 n–i个)依次前移一个位置; (3)使线性表的长度减1;返回删除成功。 status ListDelete (SqList L,int i,ElemType e) { if (i1 || iL.len ) return ERROR; // 删除位置不合法 p = (L.elem[i-1]); // p 为被删除元素的位置 e = *p; // 被删除元素的值赋给 e q = L.elem + L.len – 1; // 表尾元素的位置 for (++p; pq; ++p) *(P - 1) = * P; // 被删除元素之后的元素左移 -- L.len; // 表长减1 return OK; } // ListDelete 21 18 30 75 42 56 87 21 18 30 75 L.len-1 0 p p p q 87 56 p = (L.elem[i-1]); q = L.elem+L.len-1; for (++p; p = q; ++p) *(p-1) = *p; 例:ListDelete_Sq(L, 5, e) p e=L.elem[i-1]; for (j=i; j=L.len-1; j++) L.elem[j-1]=L.
您可能关注的文档
最近下载
- 储能技术-全套PPT课件.pptx
- 高中高考备考经验课件.pptx VIP
- 黄精种植项目可行性研究报告写作范文.doc VIP
- 项目2 2.3 植物根&茎&叶的形态与结构观察(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- 项目2 2.3 植物的营养器官(4)(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- 教学副校长在全体教师大会上发言:听好每一节课,走好专业每一步.docx
- 磁力泵试题及答案.docx VIP
- 一种利福霉素S-Na盐的合成方法.pdf VIP
- 项目2 2.3 植物的营养器官(3)(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- WHO《数据完整性指南》2021(中英文对照版).docx VIP
文档评论(0)