顺序表-删
来源:互联网 发布:淘宝香港aape正品店 编辑:程序博客网 时间:2024/05/16 10:46
1)删除数据集合data中一个或若干个元素 (无重复值)
int Delete(int data[],int n,int key){ int i,j; for(i=0;i<n && data[i]!=key;i++); if(i!=n) { for(j=i;j<n-1;j++) { data[j]=data[j+1]; } n--; } return n;}
2)设数据集合data有重复值且无序,删除关键字为key的数据元素data={3,2,5,3,3,7,6,3},设key=3;
①边查边删int Delete(int data[],int n,int key){ int i,j; for(i=0;i<n;) { if(data[i]==key) { for(j=i;j<n-1;j++) { data[j]=data[j+1]; } n--; } else { i++; } } return n;}②留下该留的,就是删除该删的int Delete(int data[],int n,int key){ int i,j; for(i=0,j=0;j<n;j++) { if(data[j]!=key) { data[i]=data[j]; i++; } } return i;}
3)删出data中所有偶数
int Delete(int data[],int n){ int i,j; for(i=0,j=0;j<n;j++) { if(data[j]%2==1) { data[i]=data[j]; i++; } } return i;}
设数据集合data,升序有序且有重复值,删去重复值
int Delete(int data[],int n){ int i,j; for(i=0,j=1;j<n;j++) { if(data[i]!=data[j]) { data[++i]=data[j]; } } return i+1;}
4)实现JosephRing,约瑟夫环,即学生围成一圈,依次数数,数到k,k出圈只到全部出圈
void JosephRing(int data[],int n,int k){ int i,j,cnt=1,num=n; while(n>1) { for(i=j=0;i<n;i++) { if(cnt!=k) { data[j++]=data[i]; cnt++; } else{ cnt=1; printf("%5d",data[i]); } } n=j; } printf("%5d",data[0]);}
阅读全文
0 0
- 顺序表-删
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- HDU1005-Number Sequence-矩阵快速幂
- 小球自由落体动态模拟(Position Based Simulation)
- java之输入输出(ACM,OJ相关)
- Appserv的安装与使用
- 应用双进程白色保活
- 顺序表-删
- QQ原生第三方登录
- C#封装的文件压缩和解压缩类
- Android自定义View入门及实战案例分析
- 51Nod 1265:四点共面(计算几何)
- 文章标题
- JavaWeb中点赞功能的实现及完整实例
- jsp倒计时循环调用
- tomcat热部署配置