使用遞迴以 C++ 列印連結串列的交替節點
連結串列是一種線性資料結構,它將元素儲存在非連續的記憶體位置。每個元素都包含一個指向連結串列中下一個元素的指標。
示例 −

在此問題中,我們給定一個連結串列,我們需要列印此連結串列的元素,但僅列印交替元素。我們舉一個例子來更好地理解問題,
Input : 2 -> 4 -> 1 -> 67 -> 48 -> 90 Output : 2 -> 1 -> 48
說明 − 我們將在連結串列上列印交替元素。因此,將打印出第一個、第三個和第五個元素。
我們將使用一個標誌元素,它最初為 0,並且會在每次列印元素時增加,否則會減少,並且當標誌為 0 時我們將列印節點值。
示例
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
void printAlternateNode(struct Node* head){
int flag = 0;
while (head != NULL) {
if (flag == 0){
printf(" %d ", head->data);
flag = 1;
}
else
flag = 0;
head = head->next;
}
}
void insertNode(struct Node** head_ref, int new_data){
struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
int main(){
struct Node* head = NULL;
insertNode(&head, 23);
insertNode(&head, 4);
insertNode(&head, 98);
insertNode(&head, 5);
insertNode(&head, 71);
printAlternateNode(head);
return 0;
}輸出
71 98 23
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP