ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.2.3-4

2019-05-22 10:53:30  阅读:268  来源: 互联网

标签:return int Sq 元素 Dele length 2.2


有序顺序表中删除 s 与 t (s<t)之间的所有元素,若s 或者 t 不合理 或 顺序表为空,提示错误并返回

//删除从s到t之间的元素
/*
void Dele_s_t(Sq &L,int s,int t){
   //应该也需要判断 s 与 t 是否超过了 表长 if(s>t || s<1 || t>L.length || L.length == 0){ printf("错误\n"); return; } int k=0; for(int i=0;i<L.length;i++){ if(L.A[i]<s || L.A[i]>t){ L.A[k] = L.A[i]; k++; } } L.length = k; } 因为表的结构是顺序表 所有 从 s到t 之间的元素应该是相连的关系 只需要找到 第一个比s大 和 第一个比t大 的元素位置 之后 将两个位置之间的 元素 向前移动即可 */ //优化删除从s_t之间的元素 void Dele_s_t(Sq &L,int s,int t){ int i,j; if(s>=t||L.length==0)return; for(i=0;i<L.length && L.A[i]<s;i++); if(i>=L.length)return; for(j=i;j<L.length && L.A[j]<=t;j++); if(j>=L.length)return;
  //将元素前移 for(;j<L.length;j++){ L.A[i] = L.A[j]; i++; } L.length = i; }

 

标签:return,int,Sq,元素,Dele,length,2.2
来源: https://www.cnblogs.com/qing-mo/p/10904455.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有