设计顺序表并删除元素在【x,y】之间的元素,将所有奇数移到所有偶数的前面,求LA=LA∪LB

1、顺序表的设计(sqlist.h):设计头文件sqlist.h,其内容如下:
①类型设计
②基本操作的设计(包括初始化、插入、删除、索引、遍历等)
2、设计文件c.h,提供比较和遍历时的操作函数。
3、测试:设计测试文件application.cpp文件,验证所设计的顺序表的正确性。其内容如下:
设计一个主函数。
4、利用上面设计的顺序表,实现下列应用
①删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
②将所有奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
③求LA=LA∪LB
设计函数实现上诉功能。并设计一个测试文件测试其正确定。
步骤:
①设计app.h文件,设计三个函数分别实现上诉①、②、③

第一步:首先根据题目要求,设计顺序表sqlist.h,代码如下

#include <stdlib.h>
#include "c.h"
#define LISTSIZE 20
#define INCREMENT 5
//设计顺序表
//1:顺序表数据类型定义
struct sqlist {
   
	elemtype *elem;
	int length;
	int listsize;
};
//2:设计函数(对顺序表进行操作)
//2.1 初始化顺序表
void initList(sqlist &L) {
   
	L.elem = new elemtype[LISTSIZE];
	L.length = 0;
	L.listsize = LISTSIZE;
}
//2.2 插入:在第i个位置插入数据元素e
void listInsert(sqlist &L, int i, elemtype e) {
   
	if (i <= 0 || i > L.length + 1) {
   
		cout << "position error!" << endl;
		exit(0);
	}
	if (L.length >= L.listsize) {
   
		elemtype *newbase;
		newbase = (elemtype *) realloc(L.elem,
				sizeof(elemtype) * (L.listsize + INCREMENT));
		if (newbase != NULL) {
   
			L.elem = newbase;
			L.listsize += INCREMENT;
		} else {
   
			cout << "space overflow!" << endl;
			exit(0);
		}
	}
	for (int j = L.length; j >= i; j--
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值