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

C++のリンクリストでN番目のノードを取得する関数を記述します


ここでは、リンクリストとインデックスが提供されています。リンクリストのN番目のノードを取得する関数を作成する必要があります。

問題を理解するために例を見てみましょう

入力

linked list = 34 -> 4 -> 9 -> 1 , n = 2

出力

9

nで指定されたノードに移動します。リンクリスト内のノードごとに移動し、必要なn番目の位置に達するまでインデックスカウントを増やします。

プログラムを説明するプログラム

#include <iostream>
using namespace std;
class Node{
   public:
   int data;
   Node* next;
};
void insertNode(Node** head_ref, int new_data) {
   Node* new_node = new Node();
   new_node->data = new_data;
   new_node->next = (*head_ref);
   (*head_ref) = new_node;
}
int findNodeAt(Node* head, int index) {
   Node* current = head;
   int count = 0;
   while (current != NULL){
      if (count == index)
         return(current->data);
      count++;
      current = current->next;
   }
}
int main(){
   Node* head = NULL;
   insertNode(&head, 8);
   insertNode(&head, 2);
   insertNode(&head, 9);
   insertNode(&head, 1);
   insertNode(&head, 4);
   int n = 2;
   cout<<"Element at index "<<n<<" is "<<findNodeAt(head, 2);
   return 0;
}

出力

Element at index 2 is 9

  1. C++のソートされたリンクリストで中央値を見つける

    この問題では、N個の要素で構成されるソートされたリンクリストが与えられます。私たちのタスクは、並べ替えられたリンクリストの中央値を見つけることです。 。 ソートされたリンクリスト は、すべての要素が特定の順序でソートされている単純なリンクリストです。 例 NULL 中央値 リンクリストの中央の要素です。 Nが奇数であるかのように見つけることができます:中央値は(n / 2) th 要素 Nが偶数の場合-s中央値は(n / 2) thの平均です 要素と(n / 2 + 1) th 要素。 問題を理解するために例を見てみましょう Input: 2 -> 3 -> 4 -

  2. C++でマルチレベルリンクリストをフラット化する

    この問題では、マルチレベルのリンクリストが提供されます。私たちの仕事は、マルチレベルのリンクリストをフラット化するプログラムを作成することです。 平坦化操作は、リンクリストで最初に第1レベルのノードが発生し、次に第2レベルのノードが発生するように実行されます。 マルチレベルリンクリスト は多次元データ構造であり、リンクリストのすべてのノードに2つのリンクポインタがあります。1つは次のノードへのリンクで、もう1つは1つ以上のノードを持つ子リストへのリンクです。この子ポインタは、他のリストノードを指している場合とそうでない場合があります。 例 問題を理解するために例を見てみましょう