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

【数据结构】线性表的基本操作

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

【数据结构】线性表的基本操作

线性表的基本操作

过程在第pos个位置插入删除第pos个元素后续待补充整体代码

过程

在第pos个位置插入
short int ListInsert(SeqList &L, int pos, int elem) {
	//合法判断
	if (pos < 1 || pos > L.length + 1) {
		return (short int) 1;
	} else if (L.length >= InitSize) {
		return (short int) 2;
	}
	
	for (int i = L.length; i >= pos; i--) {
		L.data[i] = L.data[i - 1];
	}
	L.data[pos - 1] = elem;
	L.length++;
	return (short int) 3;
}
删除第pos个元素
short int ListDelete(SeqList &L,int pos, int &e) {
	//合法判断
	if (pos < 1 || pos > L.length) {
		return (short int) 1;
	} else if (L.length == 0) {
		return (short int) 2;
	}
	
	//pos合理
	
	e = L.data[pos - 1];
	
	for (int i = pos; i < L.length; i++) {
		L.data[i - 1] = L.data[i];
	}
	//避免脏数据 
	L.data[L.length - 1] = 0;
	L.length--;
	return (short int) 3;
}
后续待补充 整体代码
#include 

using namespace std;

#define InitSize 10

typedef struct {
	int data[InitSize];
	int length;
}SeqList;


short int ListInsert(SeqList &L, int pos, int elem);

void initList(SeqList &L);
//删除第pos个元素,并将值传给e 
short int ListDelete(SeqList &L,int pos, int &e); 
//输出元素 
void print(SeqList L); 


int main() {
	SeqList L;
	
	initList(L);
	
	L.data[0] = 1;
	L.data[1] = 2;
	L.data[2] = 3;
	L.length = 3;
	
	print(L);
	short int flag;
	flag = ListInsert(L, 4, 4);
	if (flag == 1) {
		printf("插入位置不合法......n");
	} else if (flag == 2) {
		printf("当前无位置可插入......n");
	} else if (flag == 3) {
		printf("插入成功,当前表内内容:");
		print(L);
		system("pause");
	}
	int e;
	flag = ListDelete(L,3,e);
	if (flag == 1) {
		printf("删除位置不合法!n");
	} else if (flag == 2) {
		printf("当前表中已经没有元素可以删除!");
	} else if (flag == 3) {
		printf("删除成功,删除的元素是:%dn",e);
		printf("当前表中元素:a");
		print(L); 
	}
	return 0;
} 

short int ListInsert(SeqList &L, int pos, int elem) {
	//合法判断
	if (pos < 1 || pos > L.length + 1) {
		return (short int) 1;
	} else if (L.length >= InitSize) {
		return (short int) 2;
	}
	
	for (int i = L.length; i >= pos; i--) {
		L.data[i] = L.data[i - 1];
	}
	L.data[pos - 1] = elem;
	L.length++;
	return (short int) 3;
}

void initList(SeqList &L) {
	L.length = 0;
}

void print(SeqList L) {
	for (int i = 0; i < L.length; i++) {
		printf("%d ", L.data[i]);
	}
	printf("n");
}

short int ListDelete(SeqList &L,int pos, int &e) {
	//合法判断
	if (pos < 1 || pos > L.length) {
		return (short int) 1;
	} else if (L.length == 0) {
		return (short int) 2;
	}
	
	//pos合理
	
	e = L.data[pos - 1];
	
	for (int i = pos; i < L.length; i++) {
		L.data[i - 1] = L.data[i];
	}
	//避免脏数据 
	L.data[L.length - 1] = 0;
	L.length--;
	return (short int) 3;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784210.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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