设顺序表 S 中元素递增有序,编写算法删除 S 所有大于 k1 且小于 k2 的元素

删除表中指定上限和下限之间的数据的功能由函数DeleteElem()实现,其算法思想:从表头向后逐个检查数据元素,找到第一个满足删除条件的数据元素;然后再找出满足条件的元素的个数,最后将被元素之后的元素一次性移动到位。

#include
#include
#include
#include
#define LISTSIZE 50typedef struct SqListNode
{int *elem;//存储空间基址int length;//顺序表的当前长度int listsize;//顺序表的最大长度
}SqList;int InitList(SqList &List)//生成顺序表,表中元素随机生成,且从小到大有序
{int k,data;srand((unsigned)time(NULL));List.length=0;//初始时表中无元素,置顺序表表长为 0List.elem=(int *)malloc(LISTSIZE*sizeof(int));//为顺序表分配空间for(k=0;k<30;k++)//为顺序表中的各元素赋值{data=rand()%999+3;//生成随机数作为表中元素的值int i=List.length;//按从小到大的顺序插入数据,寻找插入位置while(List.elem[i-1] > data && i>0){List.elem[i]=List.elem[i-1];i--;//后移元素}List.elem[i]=data;List.length++;//表长加 1 }return 1;
}int DisplayList(SqList List)//输出顺序中各元


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部