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

数据结构2.2.3-1

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

数据结构2.2.3-1

  1. 题目:从顺序表中删除具有最小值的元素(假设唯一),并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
  2. 算法思想:判断顺序表是否为空,若是则显示出错信息,否则:遍历顺序表,查找最小元素下标值;搜索结束后先将最小元素值赋值给引用型参数deleted,然后将顺序表的最后一个元素放置到最小值处;顺序表长度自减。
  3. 代码及运行结果:
#include 
#define MAX 10
using namespace std;


//数据元素类型 
typedef int ElemType; 
//顺序表类型 
typedef struct{
	ElemType data[MAX];//数据域 
	int length;//顺序表长度,即数据元素个数 
}SqList;

bool DeleteMin(SqList &l,int &deleted){
	int min = 0;
	if(l.length == 0){
		cout << "Error:顺序表为空!" << endl;
		return false;
	} 
	//寻找最小值元素下标 
	for(int i = 1;i < l.length;i++)
		if(l.data[i] < l.data[min])
			min = i;
	//将顺序表的最后一个元素放置到最小值处,顺序表长度自减 
	deleted = l.data[min];
	l.data[min] = l.data[l.length - 1];
	l.length--;
	//需要返回的是被删元素的值 
	
	return true;
}

int main(){
	SqList l;
	int i,min;
	cout << "请输入顺序表的值(int类型):" << endl;
	for(i = 0;i < MAX;i++){
		cin >> l.data[i];
	}
	l.length = MAX;
	DeleteMin(l,min);
	cout << "顺序表中的最小值为:" << min << endl;
	cout << "删除后的顺序表:";
	for(i = 0;i < l.length;i++){
		cout << l.data[i] << " ";
	}
	return 1;
} 

 

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

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

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