栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C/C++顺序表的基本操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C/C++顺序表的基本操作

#include
#include
#define MAXSIZE 5
typedef struct {
	int* data;
	int length;
}SqList;
//初始化顺序表
void InitList(SqList& L) {
	L.data = (int*)malloc(sizeof(int) * MAXSIZE);
	L.length = 0;
	return;
}
//求表长
int Length(SqList L) {
	return L.length;
}
//按值查找
int LocalElem(SqList L, int e) {
	for (int i = 0; i < L.length; i++) {
		if (L.data[i] == e) {
			return i+1;
		}
	}
	return -1;
}
//按位查找
int GetElem(SqList L, int i) {
	if (i<1 || i>L.length)
		return -1;
	return L.data[i - 1];
}
//插入操作
bool ListInsert(SqList& L, int i, int e) {
	if (i<1 || i>L.length+1)
		return false;
	if (L.length >= MAXSIZE)
		return false;
	for (int j = L.length; j >= i; j--) {
		L.data[j] = L.data[j - 1];
	}
	L.data[i - 1] = e;
	L.length += 1;
	return true;
}
//删除操作
bool ListDelete(SqList& L, int i, int& e) {
	if (i<1 || i>L.length)
		return false;
	e = L.data[i - 1];
	for (int j = i - 1; j < L.length; j++) {
		L.data[j] = L.data[j + 1];
	}
	L.length -= 1;
	return true;
}
//输出操作
void PrintList(SqList L) {
	for (int i = 0; i < L.length; i++) {
		printf("%d", L.data[i]);
		if (i != L.length - 1) {
			printf(" ");
		}
	}
}
//判空操作
bool Empty(SqList L) {
	if (L.length == 0)
		return true;
	return false;
}
//销毁操作
bool DestroyList(SqList& L) {
	free(L.data);
	L.length = 0;
	return true;

}
int main() {
	SqList test;
	InitList(test);
	printf("表长为%dn", Length(test));
	if (Empty(test)) {
		printf("表为空n");
	}
	else {
		printf("表不为空n");
	}
	int e, i;
	e = 100, i = 1;
	printf("插入元素%d,在List序列号为%dn", e, i);
	if (ListInsert(test, i, e))	printf("插入成功n");		else printf("插入失败n");
	printf("结果:");			PrintList(test);		printf("n");

	e = 105, i = 2;
	printf("插入元素%d,在List序列号为%dn", e, i);
	if (ListInsert(test, i, e))	printf("插入成功n");		else printf("插入失败n");
	printf("结果:");			PrintList(test);		printf("n");

	e = -13, i = 3;
	printf("插入元素%d,在List序列号为%dn", e, i);
	if (ListInsert(test, i, e))	printf("插入成功n");		else printf("插入失败n");
	printf("结果:");			PrintList(test);		printf("n");

	e = 1054, i = 4;
	printf("插入元素%d,在List序列号为%dn", e, i);
	if (ListInsert(test, i, e))	printf("插入成功n");		else printf("插入失败n");
	printf("结果:");			PrintList(test);		printf("n");

	e = 231, i = 5;
	printf("插入元素%d,在List序列号为%dn", e, i);
	if (ListInsert(test, i, e))	printf("插入成功n");		else printf("插入失败n");
	printf("结果:");			PrintList(test);		printf("n");

	e = 6100, i = 6;
	printf("插入元素%d,在List序列号为%dn", e, i);
	if (ListInsert(test, i, e))	printf("插入成功n");		else printf("插入失败n");
	printf("结果:");			PrintList(test);		printf("n");

	printf("表长为%dn", Length(test));
	printf(""-13"的位置在第%d个n", LocalElem(test, -13));
	printf("2号元素为%dn", GetElem(test, 2));
	ListDelete(test, 1, e);
	printf("删除一号元素,其值为%dn", e);
	printf("结果:");			PrintList(test);		printf("n");
	if (DestroyList(test)) {
		printf("销毁表成功n");
	}
	else {
		printf("销毁表失败n");
	}
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号