顺序表删除多余值相等的元素

#include <stdio.h>
#include <malloc.h>

#define scanf_s scanf

#define LIST_INIT_SIZE 100
typedef int ElemType;
typedef struct {
	ElemType *elem; // 存储空间基址
	int length; // 当前长度
} SqList;

int menu_select() // 菜单驱动程序
{
	int sn;
	printf("       在顺序表上删除所有值相等的多余元素\n"); //显示菜单
	printf("==============================\n");
	printf("   1、顺序表的建立\n");
	printf("   2、删除表中值相等的多余元素\n");
	printf("   3、显示顺序表的内容\n");
	printf("   0、退出\n");
	printf("==============================\n");
	printf("  请选择0--3:  ");

	for (;;) // 菜单功能选择
			{
		scanf_s("%d", &sn);
		getchar();
		fflush(stdin);
		if (sn < 0 || sn > 3)
			printf("\n\t 输入选择错误,请重新选择 0--3: ");
		else
			break;
	}
	return sn;
}

void InitList(SqList *l) { // 初始化顺序表
	l->elem = (ElemType*) malloc(LIST_INIT_SIZE * sizeof(ElemType));
	l->length = 0;
}
void CreateList(SqList *l) { // 创建顺序表
	int data, i = 0;
	scanf("%d", &data);
	while (!(data < 0)) {
		l->elem[i++] = data;
		l->length++;
		scanf("%d", &data);
	}
}
void print(SqList list) { // 打印顺序表
	int i = 0;
	while (i < list.length) {
		printf("%d ", list.elem[i++]);
	}
	printf("\n");
}
/* 
TODO: 删除表中值相等的多余元素
参数说明: l是顺序表
注:1 2 2 2 2 2 2 2 2 2 90删除表中值相等的多余元素后为1 2 90
*/
void distinc(SqList *l) { //去除重复元素

}

void main() {
	SqList L;
	InitList(&L);

	for (;;) // 无限循环,选择0 退出
			{
		switch (menu_select()) // 调用菜单函数,按返回值选择功能函数
		{
		case 1:
			printf("建立并输入顺序表:\n");
			printf("输入正整数:(负数代表结束输入)\n");
			CreateList(&L);
			break;
		case 2:
			printf("去除重复元素:");
			distinc(&L);
			break;
		case 3:
			print(L);
			printf("\n");
			break;
		case 0:
			printf(" 再见!\n"); //退出系统
			return;
		} // switch语句结束
	} // for循环结束
} // main()函数结束

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值