C++程式:查詢雙向連結串列的大小
在這個問題中,我們給定一個雙向連結串列。我們的任務是建立一個C++程式來查詢雙向連結串列的大小。
雙向連結串列是一種特殊的連結串列,與單向連結串列相比,它可以更容易地向前和向後導航。以下是一些理解雙向連結串列概念的重要術語。
連結 - 連結串列的每個連結都可以儲存一個稱為元素的資料。
下一個 - 連結串列的每個連結都包含一個指向下一個連結的連結,稱為Next。
前一個 - 連結串列的每個連結都包含一個指向前一個連結的連結,稱為Prev。
連結串列 - 連結串列包含指向第一個連結(稱為First)和最後一個連結(稱為Last)的連線連結。
雙向連結串列的表示 -

問題描述 - 我們將得到上述型別的雙向連結串列。我們將找到它的長度(大小)。
讓我們舉個例子來理解這個問題,
輸入
the above linked list A <-> B <-> C.
輸出
3
解決方案方法
要查詢雙向連結串列的大小,我們需要遍歷雙向連結串列並使用長度變數跟蹤長度。
演算法
初始化 - length = 0,*temp = head
- 步驟1 - 遍歷列表,即執行直到temp != NULL。
- 步驟1.1 - 增加長度,length++
- 步驟1.2 - 更新指標,temp = temp -> next。
- 步驟2 - 列印長度。
程式說明我們解決方案的工作原理
示例
#include <iostream>
using namespace std;
struct doublyLL {
char val;
struct doublyLL *next;
struct doublyLL *prev;
};
void insertNode(struct doublyLL** head_ref, int value){
struct doublyLL* new_node = new doublyLL;
new_node->val = value;
new_node->next = (*head_ref);
new_node->prev = NULL;
if ((*head_ref) != NULL)
(*head_ref)->prev = new_node ;
(*head_ref) = new_node;
}
int calcDLLSize(struct doublyLL *temp) {
int length = 0;
while (temp != NULL){
temp = temp->next;
length++;
}
return length;
}
int main(){
struct doublyLL* head = NULL;
insertNode(&head, 'A');
insertNode(&head, 'H');
insertNode(&head, 'E');
insertNode(&head, 'K');
insertNode(&head, 'M');
insertNode(&head, 'S');
cout<<"The size of Doubly Linked List is "<<calcDLLSize(head);
return 0;
}輸出
The size of Doubly Linked List is 6
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP