C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で指定されたリンクリストの最初のkノードの積を検索します


リンクリストにいくつかの要素があると考えてください。最初のk個の要素の乗算結果を見つける必要があります。 kの値も示されています。したがって、リストが[5、7、3、5、6、9]のようで、k =3の場合、結果は5 * 7 * 3=105になります。

プロセスは簡単です。左側から現在の要素を読み取り、それをprodで乗算するだけです。 (最初はprodは1です)、k個の要素がトラバースされたら、停止します。

#include<iostream>
#include<cmath>
using namespace std;
   class Node{
      public:
         int data;
         Node *next;
   };
   Node* getNode(int data){
      Node *newNode = new Node;
      newNode->data = data;
      newNode->next = NULL;
      return newNode;
   }
   void append(struct Node** start, int key) {
      Node* new_node = getNode(key);
      Node *p = (*start);
      if(p == NULL){
         (*start) = new_node;
         return;
   }
   while(p->next != NULL){
      p = p->next;
   }
   p->next = new_node;
}
long long prodFirstKElements(Node *start, int k) {
   long long res = 1;
   int count = 0;
   Node* temp = start;
   while (temp != NULL && count != k) {
      res *= temp->data;
      count++;
      temp = temp->next;
   }
   return res;
   }
int main() {
   Node *start = NULL;
   int arr[] = {5, 7, 3, 5, 6, 9};
   int n = sizeof(arr)/sizeof(arr[0]);
   int k = 3;
   for(int i = 0; i<n; i++){
   append(&start, arr[i]);
}
cout << "Product of first k elements: " << prodFirstKElements(start, k);
}

出力

Product of first k elements: 105

  1. C++のリンクリストの代替ノードの合計

    この問題では、リンクリストが表示されます。私たちのタスクは、リンクリストの代替ノードの合計を出力することです。 リンクリストは、リンクを介して相互に接続された一連のデータ構造です。 では、問題に戻りましょう。ここでは、リンクリストの代替ノードを追加します。これは、ノードが位置0、2、4、6、…であることを追加することを意味します 問題を理解するために例を見てみましょう。 入力 4 → 12 → 10 → 76 → 9 → 26 → 1 出力 24 説明 considering alternate strings

  2. C++の循環リンクリストでノードをカウントします

    ノードを含む循環リンクリストが与えられ、タスクは循環リンクリストに存在するノードの数を計算することです。 循環リンクリストは、最初の要素が最後の要素を指し、最後の要素が最初の要素を指すリンクリストのバリエーションです。単一リンクリストと二重リンクリストの両方を循環リンクリストにすることができます。 以下のプログラムでは、単一リンクリストを循環リンクリストとして実装し、その中のノード数を計算しています。 例 Input − nodes-: 20, 1, 2, 3, 4, 5 Output − count of nodes are-: 6 Input &minus