当前位置: 首页 > 编程笔记 >

C ++链表中节点的较小元素的总和

郎睿
2023-03-14
本文向大家介绍C ++链表中节点的较小元素的总和,包括了C ++链表中节点的较小元素的总和的使用技巧和注意事项,需要的朋友参考一下

在这个问题中,我们得到了一个链表,链表的节点由两个值和一个指针组成。我们的任务是创建一个程序,以查找链表中节点的较小元素的总和。

在此,在链接列表中,我们有两个元素,分别是X和Y。程序将找到x和y的最小值。添加了来自所有节点的最小元素,这是必需的结果。

输入-

(5,2)->(7,9)->(6,3)->(36,24)->(19,26)->null

输出-

55

说明-

让我们从每个节点取X和Y的最小值-

node1 - mini = 5
node2 - mini = 7
node3 - mini = 3
node4 - mini = 24
node5 - mini = 19
Sum = 55

为了解决这个问题,我们将使用straigth正演方法,通过访问每个节点并找到X和Y的最小值。然后将其添加到sum变量中,然后在节点结束时返回sum。

算法

初始化-sum = 0

步骤1-遍历列表并执行以下操作:

步骤1.1-找到head→X和head→Y的最小值。

步骤1.2-将最小值加和

步骤2-返回总和,

示例

用来说明我们算法工作原理的程序-

#include <iostream>
using namespace std;
struct Node {
   int X;
   int Y;
   Node* next;
};
void addNode(Node** head, int x, int y){
   Node* ptr = *head;
   Node* temp = new Node();
   temp->X = x;
   temp->Y = y;
   temp->next = NULL;
   if (*head == NULL)
      *head = temp;
   else {
      while (ptr->next != NULL)
         ptr = ptr->next;
         ptr->next = temp;
   }
}
int findMinSum(Node* head){
   int sum = 0;
   while (head != NULL) {
      sum += min(head->X , head->Y);
      head = head->next;
   }
   return sum;
}
int main(){
   Node* head = NULL;
   addNode(&head, 5, 2);
   addNode(&head, 7, 9);
   addNode(&head, 6, 3);
   addNode(&head, 36, 24);
   addNode(&head, 19, 26);
   cout<<"The sum of smaller elements of nodes in Linked List is "<<findMinSum(head)<<endl;
   return 0;
}

输出结果

The sum of smaller elements of nodes in Linked List is 55
 类似资料:
  • 这是我的remove函数,用于删除具有元素的节点。我得到了一个seg错误,我很确定这是因为temp->prev是前面的哨兵,所以从技术上来说,它不在双链表中。如果这是正确的,我实际上如何防止这种情况?如有任何帮助,不胜感激。 编辑:刚刚更新了代码,但仍然出现了Seg错误

  • 本文向大家介绍C++删除链表中间节点的方法,包括了C++删除链表中间节点的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++删除链表中间节点的方法。分享给大家供大家参考,具体如下: 题目: 给定链表头结点head,实现删除链表的中间节点函数。 解题思路及代码: 快慢指针,快指针走两步,慢指针一步。 当快指针走到终点时,慢指针正好是链表中间节点,删除此节点即可。 链表结构定义: 算法

  • 双链表节点是在main函数中创建的。Ender和header已定义。在删除节点函数处中断-ender为空。 释放最后一个和第一个输入的内存的最佳方法是什么,即:删除:233,A和888,F?

  • 问题内容: 这是我的代码,我需要对列表中未定义数量的元素求和。这该怎么做? 我的输入: 输入后,我通过删除第一个元素。在列表之后,我需要对列表中的所有元素求和。 在这种情况下,总和为18。请注意,未定义元素数。 问题答案: 您可以使用内置的sum()来对列表中的数字求和: 它将汇总所有数量的项目。例: 对于您的具体情况 : 对于您的数据,首先将数字转换为数字,然后将数字求和: 这将适用于列表中 未

  • 问题内容: 我有一个点类型的链接列表,我想计算一个特定点的频率 Code }} 错误: 已更新。请帮助我。 问题答案: 您正在多个线程中使用您的线程。该的Javadoc的明确(粗体),指出: 请注意,此实现未同步。 如果多个线程同时访问链表,并且至少一个线程在结构上修改了链表,则必须在外部进行同步。 您的线程名称“吓死了我”: 线程“ Thread- 742 ”中的异常java.lang.Null

  • 我正在使用TestCafe选择器来选择元素。这是一个复杂的Custin Child嵌套场景。 下面是HTML以了解我上面提到的内容: 在图片中,我提到了和,它们是父元素(具有相同的DOM),有一个grand grand child,而另一棵树中相同父元素的grand grand child是。我需要,但需要链接,因为所有父节点都有相同的DOM。