7月19日 数据结构 DAY 5

作业:

1,单向链表简单选择排序

2,单向链表按元素插入

3,单向链表按元素修改

代码

test.c
/*
 * function:    简单选择排序
 * @param [ in] 
 * @param [out] 
 * @return      
 */
void Simple(Linklist L)
{
	if (NULL == L || L -> next == NULL)
	{
		return;
	}
	int len = len_Linklist(L);
	int i, j;
	Linklist p, q;
	for (i = 0; i < len; i++, L = L -> next)
	{
		q = L;
		for (j = i + 1, p = L -> next; j < len; j++, p = p -> next)
		{
			if (q -> data > p -> data)
			{
				q = p;
			}
		}
		if (q != L)
		{
			datatype t = q -> data;
			q -> data = L -> data;
			L -> data = t;
		}
	}
}

/*
 * function:    单项链表按元素插入
 * @param [ in] 
 * @param [out] 
 * @return      
 */
Linklist insert_by_data(Linklist L, datatype key, datatype e)
{
	int insert_pos = search_by_data(key, L);
	if (insert_pos == 1)
	{
		return L;
	}
	L = insert_by_pos(e, insert_pos, L);
	return L;
}

/*
 * function:    单项链表按元素插入
 * @param [ in] 
 * @param [out] 
 * @return      
 */
Linklist Insert_by_data(Linklist L, datatype key, datatype e)
{
	int insert_pos = search_by_data(key, L);
	if (insert_pos == -1)
	{
		return L;
	}
	L = insert_by_pos(e, insert_pos, L);
	return L;
}


/*
 * function:    单项链表按元素修改
 * @param [ in] 
 * @param [out] 
 * @return      
 */
Linklist update_by_data(Linklist L, datatype key, datatype e)
{
	int update_pos = search_by_data(key, L);
	if (update_pos == -1)
	{
		return L;
	}
	L = update_by_pos(e, update_pos, L);
	return L;
}
main.c
Simple(L);

datatype key;
printf("please enter update key:");
scanf("%d", &key);
printf("please enter element:");
scanf("%d", &e);
L = update_by_data(L, key, e);
output(L);

printf("please enter insert key:");
scanf("%d", &key);
printf("please enter element:");
scanf("%d", &e);
L = insert_by_data(L, key, e);
output(L);

结果

 

思维导图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值