题目:
每天都要处理很多事务,为了更好地安排工作,希望在每天开始工作前,根据工作记录,生成工作备忘录。首先输入工作记录数(大于0的一个整数),再逐条输入各条工作记录,每条工作记录包括:工作名,开始时间,结束时间。假设每项工作的开始时间均小于它的结束时间,并且各项工作的开始时间互不相同。


我们的工作是需要把这些工作记录按开始时间排序并输出,在输出时,如果某项工作与若干项工作冲突(在做该项工作时,需要同时做其它工作),则在该工作名前加’*’。

/*
从该题让我们编写第一个函数名字,我们就能看懂我们要往该链表中插入数据;通过仔细的读题,我们是不能随随便便的插入数据;我们得把要插入的数据按照时间的顺序插入到链表中;
*/```
Node* add(Node *header, Node *newnode)
{/*这里我们是判断头节点是不是空的,因为我们编写链表的时候是一般创建头节点的;
这里我就定义头节点为header;要插入的节点为newnode;pcurrent是当前的节点;
Pnext是当前节点的下一个节点;prev是当前节点的前一个节点;
我们编写代码的时候尽量做到见到名称就知道这个名称想代表什么意思;而不是用简单的a,b,c;来定义变量;
是在不行,用汉语拼音来定义变量名,尽量做到见名知意*/
if(header==NULL){header=newnode;header->next=NULL;return header;}Node *pcurrent=header;Node *pnext=newnode;Node *prev=NULL;while(pcurrent!=NULL&&pcurrent->start<pnext->start)//这个题是应该按照时间的顺序插入节点;{prev=pcurrent;pcurrent=pcurrent->next;}if(pcurrent==header)//这里就存在一种特殊的情况,就是当应该插入的节点比头节点对应的时间还小,是不是我们得创建新的节点,来代替节点;{Node *newheader=newnode;newheader->next=header;header=newheader;}else{prev->next=pnext;pnext->next=pcurrent;}
//通过读题,我们必须每次返回头节点;return header;
}

 void display(Node *header){Node* pcurrent=header;Node *pnext=pcurrent->next;//这里就是`插入‘*’的代码;但是我们也不能盲目的插入'*';得按照题目要求来插入’*’;还有在我们插入*号的时候需要进行判断;这个工作前面是否已经插入过*号了;还有我们不能简单的理解这个题是看第一工作和第二个工作是否有冲突;第二个工作和第三个工作有冲突;而是看第一个工作和所有第一个工作之后的工作是否有冲突;第二个工作和它之后的工作是否有冲突;、//
while(pcurrent->next!=NULL)//这里是插入*{while(pnext!=NULL){if(pcurrent->end>pnext->start){if(pcurrent->name[0]!='*'){pcurrent->name.insert(0,1,'*');}if(pnext->name[0]!='*'){pnext->name.insert(0,1,'*');}}pnext=pnext->next;}pcurrent=pcurrent->next;pnext=pcurrent->next;}pcurrent=header;while(pcurrent!=NULL)//这里遍历就是按照题目的要求输出;{cout<<pcurrent->name<<" "<<pcurrent->start<<" "<<pcurrent->end<<endl;pcurrent=pcurrent->  next;}
}
//全部代码`Node* add(Node *header, Node *newnode){if(header==NULL){header=newnode;header->next=NULL;return header;}Node *pcurrent=header;Node *pnext=newnode;Node *prev=NULL;while(pcurrent!=NULL&&pcurrent->start<pnext->start){prev=pcurrent;pcurrent=pcurrent->next;}if(pcurrent==header){Node *newheader=newnode;newheader->next=header;header=newheader;}else{prev->next=pnext;pnext->next=pcurrent;}return header;}void display(Node *header){Node* pcurrent=header;Node *pnext=pcurrent->next;while(pcurrent->next!=NULL){while(pnext!=NULL){if(pcurrent->end>pnext->start){if(pcurrent->name[0]!='*'){pcurrent->name.insert(0,1,'*');}if(pnext->name[0]!='*'){pnext->name.insert(0,1,'*');}}pnext=pnext->next;}pcurrent=pcurrent->next;pnext=pcurrent->next;}pcurrent=header;while(pcurrent!=NULL){cout<<pcurrent->name<<" "<<pcurrent->start<<" "<<pcurrent->end<<endl;pcurrent=pcurrent->    next;}}`

工作备忘录的生成(链表)相关推荐

  1. 前台提示_住哲随手记:前台工作备忘录,记你想记的所有事

    酒店前台每天需要手写记录大量的代办事项,如上午10点101房间叫早,3号提醒客人续住等.但是由于前台工作琐碎,交接班的时候会发生交接事项遗漏的情况,导致对客服务疏忽,很容易造成客人差评. 请收下小哲的 ...

  2. 金融行业工作报告自动生成系统

    对于诸多行业客户,在平时工作实践中,会产生大量的财务数据.交易数据,以及基于这些数据的计算过程和结果.如何将此类数据的采集.编辑.加工.汇总.整理.存储.产生分析报告,得到有效信息,工作量极大,人工成 ...

  3. 合作式智能运输系统 车用通信系统应用层及应用数据交互标准(第二阶段)_携手推进汽车与信息通信标准化融合发展,CSAE与CCSA签署标准化工作备忘录...

    2020年12月3日,中国汽车工程学会联合国家智能网联汽车创新中心在深圳举办了CSAE智能网联汽车V2X标准宣贯交流会.会上,中国汽车工程学会副秘书长.中国智能网联汽车产业创新联盟秘书长公维洁与中国通 ...

  4. IDEA工作笔记-自动生成POJO或JPA的实体类

    今天要要搞一个小后端,发现有些表有100多个域.就想着有没有自动生产的工具! 后面百度了下,发现有,在此记录下. 首先是要连接数据库: 右上角有Database 选择+号添加一个数据库: 然后进去后输 ...

  5. Qt工作笔记-Qt生成dll或so,并且调用(含Liunx端与Windows端)

    目录 共享库生成 Linux端编译及调用 Windows端编译及调用 共享库生成 注意:编译的时候要用lib,相当于列表,关联dll中的函数! 这里首先用Qt Creator 新建一个共享库 如下图: ...

  6. 【python】提取多个excel的工作簿,生成新的excel

    最近,偶然用到了python来处理多个excel,主要目的如下: 目的1:提取文件夹下多个excel中的第一个工作簿. 目的2:提取的工作簿的名称以原excel名称命名. 目的3:将提取出来的工作簿合 ...

  7. 53. (待补) (使用单链表)实现简单的管理系统 MVC 将链表作为内存数据模型,将文件作为数据库,将终端作为交互界面。读文件生成 链表,修改链表写入文件。...

    1 转载于:https://www.cnblogs.com/ZhuLuoJiGongYuan/p/9537821.html

  8. SpringCloud工作笔记042---fastjson生成json时Null属性不显示的解决方法

    JAVA技术交流QQ群:170933152 很简单,我去,还有这种事: 喷一下.... JSON.toJSONString(allUser.getCmuser(), SerializerFeature ...

  9. 69. (待补) (使用sqlite3)实现简单的管理系统 MVC 将链表作为内存数据模型,将sqlite3作为数据库,将终端作为交互界面。读数据库生成 链表,修改链表写入文件。...

    待补 转载于:https://www.cnblogs.com/ZhuLuoJiGongYuan/p/9571219.html

最新文章

  1. 12 集成测试方法之大棒集成方法
  2. linux 命令安装redis
  3. 用C语言解“打印九九乘法表”题
  4. 关于在SVG中如何实现gif动画的问题?
  5. 优化数据库大幅度提高Oracle的性能
  6. Leetcode 199.二叉树的右视图 (每日一题 20210628 同类型题)
  7. 剑指offer.机器人的运动范围
  8. 《网络风险及网络安全》培训总结
  9. freenas共享指定网络密码不正确_CentOS 设置服务器文件共享
  10. TDSQL 在微众银行的大规模实践之路
  11. Golang网络游戏协议处理框架
  12. 微信打飞机--Java版
  13. 最全的PHP后台管理系统源码
  14. Android 进阶技术汇总一: 个性化控件(View) 方案汇总
  15. 耿建超英语语法---非谓语动词作主语
  16. 软件著作权登记的流程步骤及申报资料整理攻略
  17. 软工网络15结对编程练习(201521123007谭燕)
  18. 在QT中调用google earth并打开KML文件
  19. 遇到三件好事,再兴奋也要忍住,别告诉同事,谨防小人背后捅刀子
  20. java计算机毕业设计四六级在线考试系统源代码+数据库+系统+lw文档

热门文章

  1. 基础的unity局域网游戏框架(一)
  2. 艾默生流量计读数不准确的原由
  3. 等待我们终将飞翔的那天—兄弟连IT教育
  4. jquery 滑块_如何使用jQuery创建动画图库(滑块工具)
  5. Kotlin学习(菜鸟教程)
  6. 物联网毕设 -- 智能花盆系统(蓝牙+APP)
  7. struts2 漏洞
  8. 学习机器学习四 回归模型——线性回归、L1正则化(Lasso回归)、L2正则化(ridge回归)
  9. 哨兵3B 地表温度产品 ENVI打开
  10. matlab 中conv2、filter2、imfilter的区别