当前位置: 首页 > news >正文

珠海金泉做网站号公司或个人码网络营销的发展前景

珠海金泉做网站号公司或个人码,网络营销的发展前景,毕业设计h5网站制作,网站建设公司 未来目录 第1题 合并两个非递减有序链表 得分点(必背) 题解 函数声明与初始化变量: 初始化合并链表的头节点: 合并两个链表: 处理剩余节点: 返回合并后的链表: 完整测试代码 🌈…

目录

第1题 合并两个非递减有序链表

得分点(必背)

题解

函数声明与初始化变量:

初始化合并链表的头节点:

合并两个链表:

处理剩余节点:

返回合并后的链表:

完整测试代码


🌈 嗨,我是命运之光!

🌌 2024,每日百字,记录时光,感谢有你,携手前行~

🚀 携手启航,我们一同深入未知的领域,挖掘潜能,让每一步成长都充满意义。


第1题 合并两个非递减有序链表

已知带头节点单链表 LA LB ,其元素均为非递减有序排列,编写算法利用原表结点空间,将链表 LA LB 合并为非递减有序序列的单链表 LC

得分点(必背)

// 合并两个非递减有序链表(得分点)
LinkList mergeLists(LinkList lista, LinkList listb){LinkList listc, p = lista, q = listb, r;
//listc指向lista 和 listb所指结点中较小者
//初始化合并链表的头节点if(lista->data<=listb->data){listc=lista;r=lista;p=lista->next;}else{listc=listb;r=listb;q=listb->next;}
//合并两个链表while(p!=NULL && q!=NULL){if(p->data<=q->data){r->next=p;r=p;p=p->next;}else{r->next=q;r=q;q=q->next;}}r->next=(p!=NULL)?p:q; //处理剩余节点return listc; //返回合并后的链表
}

题解

这段代码的功能是将两个非递减有序链表合并成一个非递减有序链表。下面我将逐步解释这段代码:

函数声明与初始化变量
LinkList mergeLists(LinkList lista, LinkList listb){LinkList listc, p = lista, q = listb, r;
  • LinkList mergeLists(LinkList lista, LinkList listb):函数名为mergeLists,参数是两个非递减有序链表listalistb,返回值是合并后的链表。
  • LinkList listc, p = lista, q = listb, r;:定义了四个指针变量:
    • listc:用于指向合并后的链表的头节点。
    • p:初始化为指向链表lista的当前节点。
    • q:初始化为指向链表listb的当前节点。
    • r:用于构建合并后的链表。
初始化合并链表的头节点
if(lista->data<=listb->data){listc=lista;r=lista;p=lista->next;
}
else{listc=listb;r=listb;q=listb->next;
}

if(lista->data<=listb->data):比较listalistb的头节点数据。

  • 如果lista的头节点数据小于等于listb的头节点数据:
    • listc = lista:将合并链表的头节点指向lista的头节点。
    • r = listar指向当前合并链表的最后一个节点(此时是lista的头节点)。
    • p = lista->next:将指针p移动到lista的下一个节点。
  • 否则:
    • listc = listb:将合并链表的头节点指向listb的头节点。
    • r = listbr指向当前合并链表的最后一个节点(此时是listb的头节点)。
    • q = listb->next:将指针q移动到listb的下一个节点。
合并两个链表
while(p!=NULL && q!=NULL){if(p->data<=q->data){r->next=p;r=p;p=p->next;}else{r->next=q;r=q;q=q->next;}
}

while(p!=NULL && q!=NULL):循环遍历listalistb,直到其中一个链表遍历完(pq变为NULL)。

  • if(p->data<=q->data):比较pq指向的节点数据。
    • 如果p的数据小于等于q的数据:
      • r->next=p:将当前合并链表的最后一个节点的next指针指向p
      • r=p:将r指向p,即更新当前合并链表的最后一个节点。
      • p=p->next:将指针p移动到lista的下一个节点。
    • 否则:
      • r->next=q:将当前合并链表的最后一个节点的next指针指向q
      • r=q:将r指向q,即更新当前合并链表的最后一个节点。
      • q=q->next:将指针q移动到listb的下一个节点。
处理剩余节点
r->next=(p!=NULL)?p:q;

r->next=(p!=NULL)?p:q;:当while循环结束时,可能还剩下一个链表中有未处理完的节点。

  • 如果p不为空,则将r->next指向p,即将剩余的lista节点连接到合并链表的末尾。
  • 如果p为空,则将r->next指向q,即将剩余的listb节点连接到合并链表的末尾。
返回合并后的链表
return listc;
  • return listc;:返回合并后的链表listc

总结:这段代码通过比较两个链表的节点数据,将较小的数据节点依次连接到合并后的链表中,最终返回一个合并后的非递减有序链表。

完整测试代码

#include<iostream>
using namespace std;// 定义链表节点结构
struct Node {
int data;
Node* next;
};
// 定义 LinkList 类型为指向 Node 的指针
typedef Node* LinkList;
// 初始化链表
void InitList(LinkList& L){L=new Node;L->next=NULL;
}
// 合并两个非递减有序链表(得分点)
LinkList mergeLists(LinkList lista, LinkList listb){LinkList listc, p = lista, q = listb, r;//lilistc指向lista 和 listb所指结点中较小者if(lista->data<=listb->data){listc=lista;r=lista;p=lista->next;}else{listc=listb;r=listb;q=listb->next;}while(p!=NULL && q!=NULL){if(p->data<=q->data){r->next=p;r=p;p=p->next;}else{r->next=q;r=q;q=q->next;}}r->next=(p!=NULL)?p:q;return listc;
}
// 打印链表
void printList(LinkList head) {while (head != nullptr) {cout << head->data << " ";head = head->next;}cout << endl;
}int main() {// 创建链表 a: 1 -> 3 -> 5Node* a1 = new Node{1, nullptr};Node* a2 = new Node{3, nullptr};Node* a3 = new Node{5, nullptr};a1->next = a2;a2->next = a3;// 创建链表 b: 2 -> 4 -> 6Node* b1 = new Node{2, nullptr};Node* b2 = new Node{4, nullptr};Node* b3 = new Node{6, nullptr};b1->next = b2;b2->next = b3;// 合并链表LinkList mergedList = mergeLists(a1, b1);// 打印结果printList(mergedList); // 应该输出: 1 2 3 4 5 6// 清理内存while (mergedList != nullptr) {Node* temp = mergedList;mergedList = mergedList->next;delete temp;}return 0;
}

嗨,我是命运之光。如果你觉得我的分享有价值,不妨通过以下方式表达你的支持:👍 点赞来表达你的喜爱,📁 关注以获取我的最新消息,💬 评论与我交流你的见解。我会继续努力,为你带来更多精彩和实用的内容。

点击这里👉 ,获取最新动态,⚡️ 让信息传递更加迅速。

http://www.15wanjia.com/news/34908.html

相关文章:

  • 万维网站建设做竞价推广大概多少钱
  • 做网站好的网站建设公司百度广告推广平台
  • 网站建设的技术手段google 浏览器
  • 做关于什么样的网站好百度软件下载
  • 重庆网站价格青岛官网seo方法
  • 寻找销售团队外包沈阳seo搜索引擎
  • 自己主机做网站服务器吗seo课堂
  • 制作一个网站平台吗如何做一个自己的网站呢
  • 多图片ppt页面设计seo资讯
  • 打造公司的网站百度安装应用
  • 论坛网站模板源码下载现在有哪些推广平台
  • 中国人民银行网站打不开google免费入口
  • 提升网站的访问速度昆明网络推广
  • 上海建设工程检测网站产品市场营销策划方案
  • 曲周企业做网站推广新手怎么做seo优化
  • 佛山专业网站制作公司而的跟地seo排名点击软件
  • 网站备案是什么一回事网站快速优化排名推荐
  • 湖北响应式网站建设企业官方推广平台
  • 怎么做电商网站seo与sem的区别与联系
  • 一些做义工的旅游网站新品牌推广策略
  • 网站没有索引量是什么意思培训机构哪家好
  • 企业所得税优惠税率东莞seo外包公司
  • 拓客软件哪个好用深圳网站seo地址
  • icp备案网站更名如何在百度提交自己的网站
  • 知名网站建设公司 北京aso优化怎么做
  • 安宁网站建设广州网站制作公司
  • wordpress 主题 lovegoogle搜索排名优化
  • 太原手机网站开发指数函数图像
  • 推荐 官网 潍坊网站建设谷歌代运营
  • 做网站有流量就有收入吗seo手机端优化