day3_数据结构

day3_数据结构

  • 今日思维导图
  • 完成顺序表的相关函数
    • 按值进行元素查找
    • 顺序表排序(选择)
    • 求最值操作
    • 顺序表反转

今日思维导图

day3_数据结构_第1张图片

完成顺序表的相关函数

按值进行元素查找

int list_search_value(seqListPtr S,datatype e);

//按值进行元素查找
int list_search_value(seqListPtr S,datatype e){
int count = 0;
if ( NULL==S || list_empty(S) )
{
	printf("err:顺序表为空,无法查询相关元素\n");
	return -1;
}

for (int i = 0;ilen ;i++ )
{
	if ( e == S->data[i] )
	{
		count++;
		printf("查询到了,下标为%d \n",i);
	}
}
//返回查询到的个数
return count;
}

顺序表排序(选择)

void list_sort(seqListPtr S,int flag);

//顺序表排序(选择排序)  0 降 | 1升
void list_sort(seqListPtr S,int flag){
	if ( NULL==S || list_empty(S) ){
		printf("erro:顺序表空,无法排序\n");
		return;
	}
	if(flag>1 || flag<0){
		printf("erro:排序需求错误\n");
		return;
	}
	int index,temp;
	//选择排序
	for (int i=0;ilen-1 ;i++ )
	{
		index = i;
		for (int j = i+1;jlen; j++)
		{
			if ( flag==0)
			{
				if(S->data[index] < S->data[j])
				{
					index = j;
				}
			}else if(flag == 1){
				if(S->data[index] > S->data[j])
				{
					index = j;
				}
			}
		}
		//移动
		temp = S->data[index];
		S->data[index] = S->data[i];
		S->data[i] = temp;	
	}

}

求最值操作

datatype list_maxOrMin_value(seqListPtr S ,int flag);

datatype list_maxOrMin_value(seqListPtr S ,int flag){
	if ( NULL==S || list_empty(S) ){
		printf("erro:顺序表空,无法查询\n");
		return NULL;
	}
	if(flag>1 || flag<0){
		printf("erro:最值查询错误\n");
		return NULL;
	}

	 datatype maxOrMin = 0;
	if ( 0==flag ){
		maxOrMin=S->data[0];
		for (int i=1;ilen ;i++ )
		{
			if ( maxOrMin>S->data[i] )
			{
				maxOrMin = S->data[i];
			}
		}
	}else if ( 1==flag )
	{
		maxOrMin=S->data[0];
		for (int i=1;ilen ;i++ ){
		
			if ( maxOrMindata[i] )
			{
				maxOrMin = S->data[i];
			}
		}

	}
	return maxOrMin;

}

顺序表反转

void list_reverse(seqListPtr S);

void list_reverse(seqListPtr S){
	int end = S->len-1;
	datatype temp = 0;
	for (int i = 0;ilen/2 ;i++ ,end--)
	{
		temp = S->data[i];
		S->data[i] = S->data[end];
		S->data[end] = temp;
	}

}

你可能感兴趣的:(作业,c语言,数据结构)