亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言雙向鏈表的長度如何計算

小億
102
2023-12-27 15:36:28
欄目: 編程語言

要計算雙向鏈表的長度,可以使用以下算法:

  1. 定義一個變量count并初始化為0,用于計數。
  2. 從鏈表的頭節點開始,依次遍歷鏈表的每個節點。
  3. 每次遍歷一個節點,count加1。
  4. 當遍歷到鏈表的最后一個節點時,count的值即為鏈表的長度。
  5. 返回count作為鏈表的長度。

下面是一個示例代碼:

#include <stdio.h>
#include <stdlib.h>

// 雙向鏈表的節點結構
typedef struct Node {
    int data;
    struct Node *prev; // 前驅節點指針
    struct Node *next; // 后繼節點指針
} Node;

// 計算雙向鏈表的長度
int getLength(Node *head) {
    int count = 0;
    Node *current = head;
    while (current != NULL) {
        count++;
        current = current->next;
    }
    return count;
}

int main() {
    // 創建雙向鏈表
    Node *head = (Node *)malloc(sizeof(Node));
    head->data = 1;
    head->prev = NULL;
    Node *node2 = (Node *)malloc(sizeof(Node));
    node2->data = 2;
    node2->prev = head;
    head->next = node2;
    Node *node3 = (Node *)malloc(sizeof(Node));
    node3->data = 3;
    node3->prev = node2;
    node2->next = node3;
    node3->next = NULL;

    // 計算鏈表的長度
    int length = getLength(head);
    printf("Length of the doubly linked list: %d\n", length);

    // 釋放鏈表內存
    Node *current = head;
    while (current != NULL) {
        Node *temp = current;
        current = current->next;
        free(temp);
    }
    return 0;
}

這段代碼中,我們首先創建了一個包含3個節點的雙向鏈表。然后使用getLength()函數計算鏈表的長度,并將結果打印輸出。最后釋放了鏈表的內存。

0
辰溪县| 克拉玛依市| 吉安市| 大埔区| 若羌县| 西宁市| 永胜县| 松阳县| 唐山市| 大关县| 郸城县| 汉中市| 句容市| 米脂县| 平湖市| 南昌县| 富川| 齐河县| 临城县| 桦甸市| 巴彦淖尔市| 民勤县| 泸州市| 治多县| 泰宁县| 吴堡县| 宿州市| 涞水县| 怀柔区| 全椒县| 拜城县| 柳州市| 卢龙县| 建水县| 吕梁市| 花莲县| 双柏县| 广元市| 德州市| 准格尔旗| 彰化县|