数据结构(C语言版)第三版基础实验一

1、基于sequlist.h中定义的顺序表,编写算法函数reverse(sequence_list *L),实现顺序表的就地倒置。

2、编写一个算法函数void sprit( sequence_list *L1,sequence_list *L2,sequence_list *L3),
将顺序表L1中的数据进行分类,奇数存放到存到顺序表L2中,偶数存到顺序表L3中,编写main()进行测试。

3、已知顺序表L1,L2中数据由小到大有序,请用尽可能快的方法将L1与L2中的数据合并到L3中,使数据在L3中按升序排列。

4、假设顺序表la与lb分别存放两个整数集合,函数inter(seqlist *la,seqlist *lb,seqlist *lc)
的功能是实现求顺序表la与lb的交集存放到顺序表lc中,请将函数补充完整.

5、请编写一个算法函数partion(sequence_list *L),尽可能快地将顺序表L中的所有奇数调整到表的左边,
所有偶数调整到表的右边,并分析算法的时间复杂度。

顺序表结构与相关函数


#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int datatype;
typedef struct
{
	datatype a[MAXSIZE];
	int size;
}sequence_list;
void initseqlist(sequence_list *L)
{
	L->size = 0;
}
void input(sequence_list *L)
{
	datatype x;
	initseqlist(L);
	printf("输入一组数据,以0为结束符\n");
	scanf_s("%d", &x);
	while (x)
	{
		L->a[L->size++] = x;
		scanf_s("%d", &x);
	}
}
void inputfromfile(sequence_list *L, char *f)
{
	int i, x;
	FILE *fp = fopen(f, "r");
	L->size = 0;
	if (fp)
	{
		while (!feof(fp))
		{
			fscanf_s(fp, "%d", &L->a[L->size++]);
		}
		fclose(fp);
	}
}
void print(sequence_list *L)
{
	int i;
	for (i = 0; i < L->size; i++)
	{
		printf("%5d", L->a[i]);
		if ((i + 1) % 10 == 0)
			printf("\n");

	}
	printf("\n");
}

一,

void reverse(sequence_list *L)
{
	int temp;
	for (int i = 0; i < L->size / 2; i++)
	{
		temp = L->a[i];
		L->a[i] = L->a[L->size - 1 - i];
		L->a[L->size - 1 - i] = temp;
	}
}
int main()
{
	sequence_list L;			/*定义顺序表*/
	input(&L);	        		/*输入测试用例*/
	print(&L);                  /*输出原表*/
	reverse(&L);		            /*顺序表倒置*/
	print(&L);                  /*输出新表*/
}

二,

三,

四,

五,

void partion(sequence_list *L)
{
	int i = 0, j = L->size - 1;
	while (i < j)
	{
		while (L->a[i] % 2 && i < j) i++;
		while
		{
			if (L->a[i] % 2 == 0 && L->a[j] % 2) {        //  找到左边的偶数,右边的奇数,那么就进行交换;  
				int temp = L->a[j];
				L->a[j] = L->a[i];
				L->a[i] = temp;
			}
		}
	}
	int main()
	{
		sequence_list L;
		inputfromfile(&L, "3.txt");
		print(&L);  						/*输出表L*/
		partion(&L);
		print(&L);  						/*输出新表*/
		return 0;
	}

猜你喜欢

转载自blog.csdn.net/W1517055683/article/details/82960430
今日推荐