顺序表管理正负数
来源:互联网 发布:淘宝外围活动通过了 编辑:程序博客网 时间:2024/05/03 14:28
思路:设置两个指示器i和j,分别扫描顺序表中的元素,i和j分别从顺序表的左端和右端扫描。如果i遇到小于等于0的元素,略过不处理,继续向前扫描;若遇到大于0的元素暂停元素。同理j相反。
<span style="font-size:18px;"><span style="font-size:18px;">#include<stdio.h>#include<stdlib.h>#define ListSize 100typedef int DataType;typedef struct{ DataType list[ListSize]; int length;}SeqList;void InitList(SeqList *L){ L->length=0;}int GetElem(SeqList L,int i,DataType *e){ if(i<1||i>L.length) return -1; *e=L.list[i-1]; return 1;}int InsertList(SeqList *L,int i,DataType e){ int j; if(i<1||i>L->length+1) { printf("插入位置i不合法!\n"); return -1; } else if(L->length>=ListSize) { printf("顺序表已满,不能插入元素。\n"); return 0; } else { for(j=L->length;j>=i;j--) L->list[j]=L->list[j-1]; L->list[i-1]=e; L->length=L->length+1; return 1; }}void SplitSeqList(SeqList *L){ int i,j; DataType e; i=0,j=(*L).length-1; while(i<j) { while(L->list[i]<=0) i++; while(L->list[j]>0) j--; if(i<j) { e=L->list[i]; L->list[i]=L->list[j]; L->list[j]=e; } } }void SplitSeqList(SeqList *L);int main(){ int i,flag,n; DataType e; SeqList L; int a[]={-12,3,-6,-10,20,-7,9,-20}; InitList(&L); n=sizeof(a)/sizeof(a[0]); for(i=1;i<=n;i++) { if(InsertList(&L,i,a[i-1])==0) { printf("位置不合法"); return 0; } } printf("顺序表中的元素:\n"); for(i=1;i<=L.length;i++) { flag=GetElem(L,i,&e); if(flag==1) printf("%4d",e); } printf("\n"); printf("顺序表L调整后:\n"); SplitSeqList(&L); for(i=1;i<=L.length;i++) { flag=GetElem(L,i,&e); if(flag==1) printf("%4d",e); } printf("\n");} </span></span>
0 0
- 顺序表管理正负数
- 百度面试题 不改变正负数相对顺序将正负数分开
- 不改变正负数相对顺序重新排列数组
- 不改变正负数相对顺序重新排列数组
- 不改变正负数之间相对顺序重新排列数组
- 不改变正负数之间相对顺序重新排列数组
- 不改变正负数相对顺序的重新排列
- 不改变正负数相对顺序的重新排列
- 统计正负数个数
- 正负数二进制计算
- 算法:区分正负数
- 正负数正则表达式
- 判断正负数
- 正负数排序
- LintCode-交错正负数
- 计算机表示正负数
- 交错正负数
- LintCode 交错正负数
- 【Android微信开发】微信开发平台安卓版(二)
- Android实现记住密码自动登录
- MyEclipse中spring_servlet.xml报异常错误:Referenced file contains error(...)For&n
- linux 应用程序的执行过程详解
- Python Base64转码解码
- 顺序表管理正负数
- 正则表达式
- Android中常用到的各种框架
- 【一】nginx核心架构概述
- 西瑞克斯机顶盒cy-jc1320安装APP
- 【Markdown】 Markdown语法介绍及常用编辑器推荐
- iOS下如何获取一个类的所有子类
- GCD 深入理解(一)
- 关于dicom参数信息和数据读写的理解