【数据结构】顺序表的基本操作-创新互联

顺序表
  1. 顺序表:线性表的顺序存储,用一段连续的存储单元来存放数据元素的。
  2. 用物理上的先后关系来表达逻辑上的前后关系
  3. 逻辑上连续的,物理上连续;物理上连续的,逻辑上也连续
顺序表的基本操作
  1. 初始化顺序表
//定义结构体
struct Line {int arrs[15];
	int length;
};

//初始化顺序表
void InitLine(struct Line *line){//表长度
	line->length = 0;
	printf("--->>>顺序表初始化完成,当前表长度为:%d\n", line->length);
}
  1. 判断表是否为空
//判断是否为空
void IsNull(struct Line *line){if (line->length!=0) {printf("--->>>此表非空,长度:%d\n", line->length);
	}
	else {printf("--->>>此表为空表,长度:%d\n", line->length);
	}
}
  1. 输入数据
//输入数据
void Input(struct Line *line) {while (1) {int inputData;
		if (line->length<15) {	printf("--->>>请输入数据,仅支持int类型(输入0结束):");
			scanf_s("%d", &inputData);
			if (inputData == 0) {		printf("--->>>输入结束\n");
				IsNull(line);
				Output(line);
				break;
			}
			line->arrs[line->length] = inputData;
			line->length++;
		}else {	printf("--->>>输入结束,容量已满\n");
			IsNull(line);
			Output(line);
			break;
		}
	}
}
  1. 输出数据
//输出数据
void Output(struct Line* line) {printf("--->>>顺序表中的数据为:\n");
	printf("--->>>");
	if (line->length == 0) {printf("无数据");
	}
	else {for (int i = 0; i< line->length; i++) {	printf(" %d ", line->arrs[i]);
		}
	}
	printf("\n");
}
  1. 插入数据
//插入数据
void Insert(struct Line *line) {IsNull(line);
	Output(line);

	while (1) {if (line->length != 15) {int index, insertData;
		printf("--->>>请选择要插入的位置{0-%d (-1退出)}:", line->length);
		scanf_s("%d", &index);
		if (index == -1) {	printf("--->>>已退出\n");
			break;
		}else {	if (index< 0 || index >line->length) {		printf("--->>>位置不合法,您可以输入(0-%d)\n", line->length);
			}else {		int temporary = line->length;
				printf("--->>>请输入插入的值,仅支持int类型:");
				scanf_s("%d", &insertData);

				if (temporary != 14) {for (int i = line->length; i >= index; i--) {line->arrs[i + 1] = line->arrs[i];
					}
				}

				line->arrs[index] = insertData;
				line->length++;
				if (temporary< line->length) {printf("--->>>插入成功\n");
				}
				else {printf("--->>>插入失败\n");
					break;
				}
			}
		}

			}else {		printf("--->>>容量已满,不允许插入\n");
				break;
			}
		}
	
}
  1. 删除数据
//删除数据
void Delete(struct Line *line) {while (1) {if (line->length != 0) {	int index,tempLength;
			tempLength = line->length;
			printf("--->>>请输入要删除的位置{0-%d (-1退出)}:",line->length - 1);
			scanf_s("%d",&index);

			if (index == -1) {		printf("--->>>已退出\n");
				break;
			}

			if (index< 0 || index >= line->length) {		printf("--->>>删除位置不合法,您可以输入(0-%d)\n", line->length - 1);
			}else {		
				for (int i = index; i< line->length; i++) {line->arrs[i] = line->arrs[i + 1];
				}
				line->length--;
				if (tempLength >= line->length) {printf("--->>>删除成功\n");
					IsNull(line);
					Output(line);
				}
				else {printf("--->>>删除失败\n");
					break;
				}
			}

		}else {	printf("--->>>没有删除对象\n");
				break;
		}

	}

}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

成都创新互联是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都网站建设、成都网站设计、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。
分享题目:【数据结构】顺序表的基本操作-创新互联
网站网址:http://scjbc.cn/article/gocic.html

其他资讯