ZBLOG

使用c++11的链表和使用C语言的链表形式

在C++11中,可以使用标准库中的std::list来表示链表。它是一个双向链表容器,提供了一系列操作链表的方法和功能。

以下是一个使用C++11的链表示例:

#include <iostream>
#include <list>

int main() {
    std::list<int> myList; // 创建一个空链表

    // 在链表尾部插入元素
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);

    // 遍历打印链表中的元素
    for (auto it = myList.begin(); it != myList.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

而在C语言中,可以通过定义结构体和指针来实现链表的形式。

以下是一个使用C语言的链表示例:

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

struct Node {
    int data;
    struct Node* next;
};

// 向链表尾部插入节点
void append(struct Node** headRef, int newData) {
    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = newData;
    newNode->next = NULL;

    if (*headRef == NULL) {
        *headRef = newNode;
        return;
    }

    struct Node* lastNode = *headRef;
    while (lastNode->next != NULL) {
        lastNode = lastNode->next;
    }
    
   lastNode->next = newNode;
}

// 打印链表中的元素
void printList(struct Node* node) {
    while (node != NULL) {
        printf("%d ", node->data);
        node = node->next;
    }
    printf("\n");
}

int main() {
    struct Node* head = NULL; // 初始化一个空链表

    // 向链表中插入节点
    append(&head, 1);
    append(&head, 2);
    append(&head, 3);

    // 打印链表中的元素
    printList(head);

    return 0;
}

这两个示例展示了在C++11和C语言中实现链表的方式。注意,在使用C++时,推荐使用标准库中的std::list来简化操作。而在C语言中,则需要自己定义结构体和编写相应的函数来操作链表。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=8136

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?