C プログラムで、次の内容を中国語に翻訳します。 リンクされたリストの下から n 番目のノードを検索するプログラム
n 個のノードがある場合、タスクはリンク リストの最後に n 番目のノードを出力することです。プログラムはリスト内のノードの順序を変更してはなりませんが、リンクされたリストの最後のノードから n 番目のノードのみを出力する必要があります。
例
Input -: 10 20 30 40 50 60 N=3 Output -: 40
上記の例では、最初のノードから開始して、count-n 個のノード、つまり 10,20 30,40, 50,60 まで移動します。つまり、最後の 3 個はノード数は40です。
リスト全体を効率的に走査する代わりに、次のようにすることもできます -
- たとえば、ノード タイプの temp# への一時ポインタを取得します。 ##この一時ポインタを、指す最初のノード ヘッド ポインタに設定します。 カウンタをリスト内のノードの数に設定します。 Move temp to temp → next until count -n Display temp → data
th 10 位から始まり、20 位までが 1 位、30 位が 2 位となります。したがって、このアプローチを使用すると、リスト全体を最後まで繰り返す必要がなく、スペースとメモリが節約されます。
アルゴリズムStart
Step 1 -> create structure of a node and temp, next and head as pointer to a structure node
struct node
int data
struct node *next, *head, *temp
End
Step 2 -> declare function to insert a node in a list
void insert(int val)
struct node* newnode = (struct node*)malloc(sizeof(struct node))
newnode->data = val
IF head= NULL
set head = newnode
set head->next = NULL
End
Else
Set temp=head
Loop While temp->next!=NULL
Set temp=temp->next
End
Set newnode->next=NULL
Set temp->next=newnode
End
Step 3 -> Declare a function to display list
void display()
IF head=NULL
Print no node
End
Else
Set temp=head
Loop While temp!=NULL
Print temp->data
Set temp=temp->next
End
End
Step 4 -> declare a function to find nth node from last of a linked list
void last(int n)
declare int product=1, i
Set temp=head
Loop For i=0 and i<count-n and i++
Set temp=temp->next
End
Print temp->data
Step 5 -> in main()
Create nodes using struct node* head = NULL
Declare variable n as nth to 3
Call function insert(10) to insert a node
Call display() to display the list
Call last(n) to find nth node from last of a list
Stop
ログイン後にコピー
例ライブデモンストレーションStart Step 1 -> create structure of a node and temp, next and head as pointer to a structure node struct node int data struct node *next, *head, *temp End Step 2 -> declare function to insert a node in a list void insert(int val) struct node* newnode = (struct node*)malloc(sizeof(struct node)) newnode->data = val IF head= NULL set head = newnode set head->next = NULL End Else Set temp=head Loop While temp->next!=NULL Set temp=temp->next End Set newnode->next=NULL Set temp->next=newnode End Step 3 -> Declare a function to display list void display() IF head=NULL Print no node End Else Set temp=head Loop While temp!=NULL Print temp->data Set temp=temp->next End End Step 4 -> declare a function to find nth node from last of a linked list void last(int n) declare int product=1, i Set temp=head Loop For i=0 and i<count-n and i++ Set temp=temp->next End Print temp->data Step 5 -> in main() Create nodes using struct node* head = NULL Declare variable n as nth to 3 Call function insert(10) to insert a node Call display() to display the list Call last(n) to find nth node from last of a list Stop
#include<stdio.h> #include<stdlib.h> //structure of a node struct node{ int data; struct node *next; }*head,*temp; int count=0; //function for inserting nodes into a list void insert(int val){ struct node* newnode = (struct node*)malloc(sizeof(struct node)); newnode->data = val; newnode->next = NULL; if(head == NULL){ head = newnode; temp = head; count++; } else { temp->next=newnode; temp=temp->next; count++; } } //function for displaying a list void display(){ if(head==NULL) printf("no node "); else { temp=head; while(temp!=NULL) { printf("%d ",temp->data); temp=temp->next; } } } //function for finding 3rd node from the last of a linked list void last(int n){ int i; temp=head; for(i=0;i<count-n;i++){ temp=temp->next; } printf("</p><p>%drd node from the end of linked list is : %d" ,n,temp->data); } int main(){ //creating list struct node* head = NULL; int n=3; //inserting elements into a list insert(1); insert(2); insert(3); insert(4); insert(5); insert(6); //displaying the list printf("</p><p>linked list is : "); display(); //calling function for finding nth element in a list from last last(n); return 0; }
linked list is : 1 2 3 4 5 6
3rd node from the end of linked list is : 4
ログイン後にコピー
linked list is : 1 2 3 4 5 6 3rd node from the end of linked list is : 4
以上がC プログラムで、次の内容を中国語に翻訳します。 リンクされたリストの下から n 番目のノードを検索するプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









単一リンクされたリストと入力として正の整数 N が与えられます。目標は、再帰を使用して、指定されたリストの末尾から N 番目のノードを見つけることです。入力リストにノード a→b→c→d→e→f があり、N が 4 の場合、最後から 4 番目のノードは c になります。まず、リスト内の最後のノードまでトラバースし、再帰的 (バックトラッキング) 増分カウントから戻るときにスキャンします。 count が N に等しい場合、現在のノードへのポインタが結果として返されます。このためのさまざまな入出力シナリオを見てみましょう - 入力 - リスト: -1→5→7→12→2→96→33N=3 出力 - 最後から N 番目のノードは: 2 説明 - 3 番目のノードは 2 です。入力 - リスト: -12→53→8→19→20→96→33N=8 出力 - ノードが存在しません

コンピューター プログラミングを行う場合、特定のノードから D 単位以上離れたノードをサブツリーに含めることができないという条件で、特定のノードに由来するサブツリーの最小重みを見つけることが必要になる場合があります。この問題は、グラフ理論、ツリーベースのアルゴリズム、ネットワーク最適化など、さまざまな分野やアプリケーションで発生します。サブツリーは、指定されたノードがサブツリーのルート ノードとして機能する、より大きなツリー構造のサブセットです。サブツリーには、ルート ノードのすべての子孫とそれらの接続エッジが含まれます。ノードの重みは、そのノードに割り当てられた特定の値を指し、その重要性、重要性、またはその他の関連するメトリックを表すことができます。この問題の目標は、ルート ノードから最大 D 単位離れたノードにサブツリーを制限しながら、サブツリー内のすべてのノード間の最小重みを見つけることです。次の記事では、サブツリーから最小重みをマイニングする複雑さについて詳しく説明します。

数値のリンク リスト表現は次のように提供されます。リンク リストのすべてのノードは、数値の 1 桁とみなされます。ノードは、リンク リストの最初の要素が数値の最上位桁を保持し、リンク リストの最後の要素が数値の最下位桁を保持するように数値を格納します。たとえば、数値 202345 は、リンク リストでは (2->0->2->3->4->5) として表されます。数値を表すこのリンク リストに 1 を追加するには、リスト内の最下位ビットの値をチェックする必要があります。 9 より小さい場合は問題ありませんが、それ以外の場合はコードによって次の番号などが変更されます。次に、これを行う方法を理解するための例を見てみましょう。1999 年は (1->9->9->9) として表され、1 を追加すると変更されます。

PHPSPL データ構造ライブラリの概要 PHPSPL (標準 PHP ライブラリ) データ構造ライブラリには、さまざまなデータ構造を保存および操作するためのクラスとインターフェイスのセットが含まれています。これらのデータ構造には、配列、リンク リスト、スタック、キュー、セットが含まれており、それぞれがデータを操作するためのメソッドとプロパティの特定のセットを提供します。配列 PHP では、配列は一連の要素を格納する順序付けされたコレクションです。 SPL 配列クラスは、ソート、フィルタリング、マッピングなどのネイティブ PHP 配列の拡張機能を提供します。 SPL 配列クラスの使用例を次に示します。 useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

配列とリンク リストのアルゴリズムの時間計算量の比較: 配列 O(1) へのアクセス、リンク リスト O(n)、配列 O(1) の挿入、配列 O(1) の削除。 )、リンク リスト O(n) (n); 検索配列 O(n)、リンク リスト O(n)。

Vue と jsmind を使用してマインド マップのノード コピーおよびカット機能を実装するにはどうすればよいですか?マインド マップは、考えを整理し、思考ロジックを整理するのに役立つ一般的な思考ツールです。ノードのコピーとカット機能は、マインド マップでよく使用される操作であり、既存のノードをより便利に再利用し、思考整理の効率を向上させることができます。この記事では、Vue と jsmind の 2 つのツールを使用して、マインド マップのノードのコピーとカット機能を実装します。まず、Vue と jsmind をインストールし、

リンク リストは、データとポインターを含む一連のノードを使用して要素を編成するデータ構造であり、大規模なデータ セットや頻繁な挿入/削除操作の処理に特に適しています。その基本コンポーネントには、ノード (データと次のノードへのポインター) とヘッド ノード (リンク リストの最初のノードを指す) が含まれます。一般的なリンク リスト操作には、追加 (末尾の挿入)、削除 (特定の値)、および走査が含まれます。

Python では、リンク リストは一連のノードで構成される線形データ構造であり、各ノードには値とリンク リスト内の次のノードへの参照が含まれます。この記事では、Python でリンク リストの最初と最後の位置に要素を追加する方法について説明します。 Python の LinkedList リンク リストは、要素のセットを格納するために使用される参照データ構造です。これはある意味配列に似ていますが、配列ではデータは連続したメモリ位置に格納されますが、リンク リストではデータはこの条件の影響を受けません。これは、データが順番にメモリに保存されるのではなく、ランダムにメモリに保存されることを意味します。これにより、どうやってできるのかという疑問が生じます
