loading请求处理中...

编程算法之合并有序链表

2021-12-01 21:24:31 阅读 11242次 标签: 开发 作者: 蓝blue

  一些应用软件中有用到升序链表,这个就需要程序员在应用软件开发的时候写好升序链表的代码,下面就是一组升序链表的代码,想要升序链表代码的小伙伴都拿去吧。

升序链表

  节点结构:

  struct Node{

  int val;

  Node *next;

  };

  要求实现的函数:

  Node* mergeList(Node *list_a, Node* list_b)

  代码:

  /*

  * test.cpp

  *

  * Created on: 2014.04.24

  * Author: Spike

  */

  /*eclipse cdt, gcc 4.8.1*/

  #include

  #include

  using namespace std;

  struct Node{

  int val;

  Node *next;

  };

  Node* mergeList(Node *list_a, Node* list_b) {

  if (list_a == NULL) //递归的终止条件

  return list_b;

  else if (list_b == NULL)

  return list_a;

  Node* pMergedHead = NULL; //合并后的链表

  if (list_a->val < list_b->val) {

  pMergedHead = list_a; //指向头结点

  pMergedHead->next = mergeList(list_a->next, list_b); //递归

  } else {

  pMergedHead = list_b;

  pMergedHead->next = mergeList(list_a, list_b->next);

  }

  return pMergedHead;

  }

  Node* initList(const std::vector& vi) {

  Node* pHead = new Node;

  Node* pTemp = pHead;

  for (std::size_t i=0; i

  pTemp->val = vi[i];

  if (i != vi.size()-1) { //非尾结点

  Node* pNode = new Node;

  pTemp->next = pNode;

  pTemp = pTemp->next;

  }

  }

  pTemp->next = NULL;

  return pHead;

  }

  void printList(Node* L) {

  Node* pTemp = L;

  while (pTemp->next != NULL) {

  std::cout << ptemp-="">val <<>

  pTemp = pTemp->next;

  }

  std::cout << ptemp-="">val <<>

  std::cout << std::endl="">

  }

  int main(void) {

  std::vector via = {1, 2, 3, 4, 5, 13};

  std::vector vib = {2, 4, 5, 7, 9, 11};

  Node* list_a = initList(via);

  Node* list_b = initList(vib);

  std::cout << printlist="">

  std::cout << printlist="">

  Node* list_merge = mergeList(list_a, list_b);

  std::cout << printlist="">

  return 0;

  }

  输出:

  如果你想找升序链表服务,或者想要了解更多升序链表资讯,就上一品威客网。一品威客网入驻上百家专业应用程序开发公司,汇集全国千万优秀专业人才,提供最全面、最专业的升序链表服务。


其他工具软件公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
其他工具软件相关任务
DESIGN TASK 更多
期货量化交易系统开发

¥10000 已有0人投标

报税Api开发

¥200000 已有0人投标

网上商城APP开发

¥20000 已有11人投标

微信公众号服务号开发

¥3000 已有0人投标

电商营销网站开发

¥3000 已有1人投标

今日头条的点赞功能开发

¥3000 已有1人投标

工作岗位管理Web APP开发

¥1000 已有6人投标