单链表排序——交换数据成员

博客内容包含仿冒泡函数对Words型结构体链表排序的代码,还涉及单链表统计文本中英文单词出现次数,并输出前200个单词及其出现次数,聚焦于链表操作和单词频次统计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仿冒泡函数,对一个Words型结构体链表排序,全部代码[单链表]统计文本中英文单词出现次数,并输出前200个单词及其出现次数

void WordsSort(Words *headWord)
{
	if(headWord->next == NULL)	return;	//链表为空无法排序
	Words *flg_word = NULL;				//标记,每次循环结束时指向本次循环的最大值地址,同时也可做终止条件,仿冒泡
	int flag;							//优化冒泡,标记是否发生了交换
	while(flg_word != headWord->next)	//类似于冒泡排序中内循环的条件语句 j<n-i-1
	{                                                    //或flg_word > headWord->next
		flag = 0;
		Words *pos = headWord->next;	//当前    pos[j]
		Words *pos_next = pos->next;	//下一个  pos[j+1]

		while(pos_next != NULL)			//条件基本用不上,可写为死循环
		{
			if(pos->count < pos_next->count)
			{
				SwapWord(pos,pos_next);		//交换数据函数
				flag = 1;
			}

			if(pos_next->next == flg_word)
			{
				flg_word = pos_next;		//相当于flg_word每次向前移动一个位置
				break;						//提前退出,后面的已经有序
			}
			pos = pos->next;
			pos_next = pos_next->next;

		}
		if(flag == 0)	break;			//没有交换,该链表(数列……)已为有序,无需再排序
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫RT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值