求大神帮忙解释下这个程序里的算法,,感激谢谢

回家uii 回家uii 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<iostream>
#include<string.h>
#include<malloc.h>
using namespace std;
typedef struct LNode//定义单链表结点
{
char data;
struct LNode *next;
}linklist;
void creatlist(linklist *&l,char a[],int n)//(后插法)建立单链表
{
linklist *s,*r;int i;
l=(linklist*)malloc(sizeof(linklist));//给头结点分配空间
l->next=NULL;
r=l;

for(i=0;i<n;i++)
{
s=(linklist*)malloc(sizeof(linklist));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void creat2(linklist*&head)//对链表元素排序
{
linklist*p=head->next,*q,*r;
if(p!=NULL)
{
r=p->next;
p->next=NULL;
p=r;
while(p!=NULL)
{ r=p->next;
q=head;
while(q->next!=NULL&&q->next->data<p->data)
q=q->next;
p->next=q->next;
q->next=p;
p=r;
}
}
}
void shanchu(linklist *&head)//删除链表中重复元素
{
linklist*p=head->next,*r=head,*q,*f;
while(p->next)
{
if(p->data==p->next->data||((p->next->data>'z')||(p->next->data<'a')))
{
q=p->next;
p->next=q->next;
free(q);
}
else
p=p->next;
}
if(r->next->data>'z'||r->next->data<'a')
{
f=r->next;
r->next=f->next;
free(f);
}
}
void bing(linklist *ha,linklist *hb,linklist *hc)//求并集
{
linklist*pa,*pb,*pc;
pa=ha->next;
while(pa!=NULL)
{
pc=(linklist*)malloc(sizeof(linklist));
pc->data=pa->data;
pc->next=hc->next;
hc->next=pc;
pa=pa->next;
}
pb=hb->next;
while (pb!=NULL)
{
pa=ha->next;
while((pa!=NULL)&&(pa->data!=pb->data))
{
pa=pa->next;
if(pa==NULL)
{
pc=(linklist*)malloc(sizeof(linklist));
pc->data=pb->data;
pc->next=hc->next;
hc->next=pc;
}
}
pb=pb->next;
}
}
void jiao(linklist *ha,linklist*hb,linklist*&hc)//求交集
{
linklist*pa=ha->next,*pb,*s,*tc;
hc=(linklist*)malloc(sizeof(linklist));
tc=hc;
while (pa)
{
pb=hb->next;
while(pb&&pb->data<pa->data)
pb=pb->next;
if(pb&&pb->data==pa->data)
{
s=(linklist*)malloc(sizeof(linklist));
s->data=pa->data;
tc->next=s;
tc=s;
}
pa=pa->next;
}
tc->next=NULL;
}
void cha(linklist *ha,linklist*hb,linklist*&hc)//求差集
{
linklist*pa=ha->next,*pb,*s,*tc;
hc=(linklist*)malloc(sizeof(linklist));
tc=hc;
while (pa)
{
pb=hb->next;
while(pb&&pb->data<pa->data)
pb=pb->next;
if(!(pb&&pb->data==pa->data))
{
s=(linklist*)malloc(sizeof(linklist));
s->data=pa->data;
tc->next=s;
tc=s;
}
pa=pa->next;
}
tc->next=NULL;
}
void dislist(linklist *l)//输出
{
linklist *p=l->next;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}
cout<<endl;
}
int main()
{
linklist *ha,*hb,*hc;
char a[100],b[100];
int la,lb,x;
cout<<"请输入集合Set1:";
cin.getline(a,100);
//cin.getline(),该函数一次读取多个字符。
cout<<"请输入集合Set2:";
cin.getline(b,100);
la=strlen(a);
//strlen(). string.函数库中的函数。计算字符数组中元素的数量
lb=strlen(b);
creatlist(ha,a,la);
creatlist(hb,b,lb);
creat2(ha);
creat2(hb);
shanchu(ha);
shanchu(hb);
cout<<endl;
cout<<"[1] 输出有序集合(删除重复元素):"<<endl;
cout<<"[2] 求两集合的交集Set1∩Set2:"<<endl;
cout<<"[3] 求两集合的并集Set1USet2:"<<endl;
cout<<"[4] 求两集合的差集Set1-Set2:"<<endl;
cout<<endl;
while(x!=0)
{ cout<<endl;
cout<<"请选择要进行的运算序号(选0将退出):"<<endl;
cin>>x;
switch(x)
{
case 1:
cout<<"有序集合Set1:";dislist(ha);
cout<<"有序集合Set2:";dislist(hb);
break;
case 2:
jiao(ha,hb,hc);
cout<<"两集合的交集Set1∩Set2=";dislist(hc);
break;
case 3:
bing(ha,hb,hc);
creat2(hc);
shanchu(hc);
cout<<"两集合的并集Set1USet2=";dislist(hc);
break;
case 4:
cha(ha,hb,hc);
cout<<"两集合的差集Set1-Set2=";dislist(hc);
break;
}
}
return 0;
}
...全文

相关推荐

硕士复现燃料电池供氢系统建模及控制策略Simulink仿真(附带说明PPT+参考文献+复现模型+实物源码)

内容概要:本资源聚焦于燃料电池供氢系统的建模与控制策略研究,通过Simulink仿真平台实现系统动态行为的精确模拟与控制算法的验证。内容涵盖供氢系统的关键部件建模,如氢气供应管路、压力调节阀、储氢罐及燃料电池堆等,并针对系统响应滞后、压力波动等问题,设计并实现了先进的控制策略,例如基于反馈与前馈的复合控制、PID控制或模型预测控制(MPC),以确保氢气供给的稳定性与效率。配套提供的说明PPT详细阐述了建模思路与控制逻辑,参考文献为研究提供了理论支撑,而完整的复现模型与实物源码则极大地方便了学习者进行仿真复现与二次开发。; 适合人群:具备一定自动化、电气工程或能源动力系统背景,正在进行相关课题研究的研究生,以及从事氢能系统开发的工程技术人员。; 使用场景及目标:① 学习并掌握燃料电池供氢系统的工作原理与关键组件的数学建模方法;② 利用Simulink搭建复杂能源系统的仿真模型,并设计、调试与验证先进控制策略;③ 基于提供的完整资源包(PPT、模型、源码)进行科研复现,作为学位论文或学术研究的技术基础。; 阅读建议:学习者应结合说明PPT的理论讲解,逐步操作复现模型,重点关注控制模块的设计逻辑与参数整定过程。建议在理解现有模型的基础上,尝试修改工况参数或优化控制算法,以深化对系统动态特性的认识,从而将本资源作为开展自主创新研究的有效跳板。

小念念_

风光火储多源协同参与电网一次调频与二次 AGC 调频控制策略研究(Simulink仿真实现)

内容概要:本文研究了风光火储多源协同参与电网一次调频与二次AGC调频的控制策略,并通过Simulink进行仿真实现。深入分析了风能、光伏、火电及储能系统在电网频率调节中的出力特性与动态响应机制,提出了一种综合协调控制策略,实现调频责任的合理分配与控制指令的有效分解。研究涵盖了多能源系统建模、频率偏差检测、调频功率分配逻辑、控制器参数设计及闭环仿真验证等关键环节,有效提升了高比例新能源接入背景下电力系统的频率稳定性与抗扰动能力。; 适合人群:具备电力系统、自动化或新能源相关背景,从事电网控制、能源调度、仿真建模等工作的科研人员与工程技术人员,尤其适合研究生及从事新能源并网与电力系统稳定研究的专业人员。; 使用场景及目标:①应用于高比例新能源接入电网的频率稳定控制研究;②为风光火储多能互补系统的协同控制策略设计提供仿真验证平台;③支持电力系统仿真教学与科研中的动态性能分析与控制算法开发。; 阅读建议:建议结合Simulink模型文件同步运行仿真,深入理解各模块控制逻辑;重点关注多源调频的协调机制与参数整定方法,可进一步扩展至含储能优化配置或考虑通信延迟的场景研究。

三伯

毕业设计含文档和代码VB+ACCESS汽车租凭管理系统(论文+系统)

毕业设计含文档和代码VB+ACCESS汽车租凭管理系统(论文+系统)

zz_ll9023one

poppler-26.09.0

Poppler 是开源 PDF 渲染 / 解析库(基于 Xpdf 3.0),poppler-26.09.0 是它 2026-09-03 发布的正式版本

weixin_40719186

LangGraph图版本控制:迁移与兼容性处理

内容概要:讲解随着需求变化,LangGraph图结构如何演进。展示状态字段增删改、节点重命名、边调整时的兼容策略。通过版本号字段和迁移函数示例,说明如何处理旧检查点数据。讨论灰度发布和A/B测试中的多图版本并存方案。 sjbzhibo.hqjxgs.com hntxmedia.com www.honglu-cy.com seriea-live-streaming.hnxskj.com cbalive.htne.com.cn

2601_96960449
评论 1
收藏 已收藏
分享
返回顶部
回家uii
C++ 语言 65,214 成员 250,514 内容