中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
马尔康县| 应用必备| 文昌市| 红桥区| 徐闻县| 湖北省| 桐城市| 石棉县| 武隆县| 富顺县| 克什克腾旗| 台中市| 苍梧县| 普洱| 通州市| 陆河县| 枣强县| 岳池县| 民丰县| 车险| 大洼县| 都昌县| 新蔡县| 洛阳市| 嵊泗县| 开化县| 新巴尔虎右旗| 汉寿县| 淮南市| 瓦房店市| 滦平县| 青海省| 梅州市| 喀喇沁旗| 游戏| 佛坪县| 陆丰市| 南开区| 栖霞市| 克拉玛依市| 清镇市|