-
リンクリストの先頭にノードを挿入する方法:
- 新しいノードを作成し、データを設定します。
- 新しいノードの次のポインタを、既存のリンクリストの先頭ノードに設定します。
- リンクリストの先頭ポインタを、新しいノードに更新します。
以下は、C言語での例です:
struct Node { int data; struct Node* next; }; void insertAtBeginning(struct Node head, int newData) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->data = newData; newNode->next = *head; *head = newNode; }
-
リンクリストの末尾にノードを挿入する方法:
- 新しいノードを作成し、データを設定します。
- 新しいノードの次のポインタをNULLに設定します。
- リンクリストの最後のノードの次のポインタを新しいノードに設定します。
以下は、C++での例です:
struct Node { int data; struct Node* next; }; void insertAtEnd(struct Node head, int newData) { struct Node* newNode = new Node(); newNode->data = newData; newNode->next = NULL; if (*head == NULL) { *head = newNode; } else { struct Node* lastNode = *head; while (lastNode->next != NULL) { lastNode = lastNode->next; } lastNode->next = newNode; } }
-
リンクリストの指定位置にノードを挿入する方法:
- 新しいノードを作成し、データを設定します。
- 指定した位置の前後のノードを特定します。
- 前のノードの次のポインタを新しいノードに設定し、新しいノードの次のポインタを後のノードに設定します。
以下は、Pythonでの例です:
class Node: def __init__(self, data=None): self.data = data self.next = None def insertAtPosition(head, position, newData): newNode = Node(newData) if position == 1: newNode.next = head return newNode currentNode = head currentPosition = 1 while currentPosition < position - 1 and currentNode.next: currentNode = currentNode.next currentPosition += 1 if currentPosition < position - 1: print("指定した位置が存在しません") return head newNode.next = currentNode.next currentNode.next = newNode return head
これらのコード例は、リンクリストにノードを挿入するための基本的な手法を示しています。プログラミング言語や環境に応じて、適切なコードを使用してください。