单链表按升序排列问题

together210 2013-04-12 11:47:03

void SortList(LinkList &L) //排序函数的定义。。。不知道哪里出问题了,不能运行,,求老师帮忙看哪里出错
{

LinkList p,q,m;
p=L->next;
q=L;
while(p!=NULL)
{

while(p!=q)
{
if(((p->next->data)<(q->next->data)))
{
m=p->next;
p->next=m->next;
m->next=q->next;
q->next=m;
q=L;
}
else
q=q->next;

}
p=p->next;
q=L;
}



}
...全文
1015 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyong 2013-04-16
  • 打赏
  • 举报
回复
什么错误?直接贴上。
Zxy0918520 2013-04-16
  • 打赏
  • 举报
回复
引用 1 楼 wyhllk 的回复:
C/C++ code?123456789101112131415161718192021222324252627282930313233343536nodetype *order(nodetype *h)//将一个无序的单链表排列成一个升序的单链表{ nodetype *head,*p=h,*q,*r,*t; head=(nodetype *)malloc(s……
请问大侠什么叫做链表。。。
lm_whales 2013-04-16
  • 打赏
  • 举报
回复
void SortList(LinkList &L)/*这个是冒泡排序*/ { LinkList p=L,q; if(!p)return; while(p->next) { q=p->next;/*刚才漏了分号*/ while(q ); { if(q->d < p->d){/* 交换相邻节点 */ if(p==L)L=q; /* 换头节点*/ p->next =q->next;/* 摘下 q */ q->next =p; /* 链接到p前面*/ q=p->next; /* q 取 p的下一个节点,原为q的下一个节点,也是滑动一个节点*/ }else{p=q;q=q->next;}/* 不交换相邻节点,p,q滑动一个节点 */ } } }
lm_whales 2013-04-16
  • 打赏
  • 举报
回复
void SortList(LinkList &L) { LinkList p=L,q; if(!p)return; while(p->next) { q=p->next while(q ); { if(q->d < p->d){/* 交换相邻节点 */ if(p==L)L=q; /* 换头节点*/ p->next =q->next;/* 摘下 q */ q->next =p; /* 链接到p前面*/ q=p->next; /* q 取 p的下一个节点,原为q的下一个节点,也是滑动一个节点*/ }else{p=q;q=q->next;}/* 不交换相邻节点,p,q滑动一个节点 */ } } }
小类人猿 2013-04-16
  • 打赏
  • 举报
回复
nodetype *order(nodetype *h)//将一个无序的单链表排列成一个升序的单链表
{
	nodetype *head,*p=h,*q,*r,*t;
	head=(nodetype *)malloc(sizeof(nodetype));//head是哨兵
	head->data=0;//存放有序单链表的节点的个数
	head->next=NULL;
	while(p!=NULL)
	{
		if(head->data==0)//单链表为空
		{
			head->next=p;
			q=p->next;
			p->next=NULL;
			p=q;
		}
		else
		{
			q=head->next;
			r=head;
			while(q!=NULL&&p->data>q->data)//找到r节点,将p节点插入到其后
			{
				r=q;
				q=q->next;
			}
			t=p->next;
			p->next=r->next;
			r->next=p;
			p=t;
		}
		head->data++
	}
	t=head;
	head=head->next;
	free(t);//删除哨兵
	return head;
}
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧