当前位置:首页 C++ > 正文

c++单链表的头插法和尾插法

作者:野牛程序员:2023-11-26 11:52:35 C++阅读 2716

头插法和尾插法是单链表常见的两种插入方式。下面是C++中的完整代码示例:

#include <iostream>

// 定义链表节点
struct Node {
    int data;
    Node* next;
    Node(int value) : data(value), next(nullptr) {}
};

// 头插法插入节点
Node* insertAtBeginning(Node* head, int value) {
    Node* newNode = new Node(value);
    newNode->next = head;
    return newNode;
}

// 尾插法插入节点
Node* insertAtEnd(Node* head, int value) {
    Node* newNode = new Node(value);
    if (head == nullptr) {
        return newNode;
    }

    Node* current = head;
    while (current->next != nullptr) {
        current = current->next;
    }

    current->next = newNode;
    return head;
}

// 打印链表
void printList(Node* head) {
    Node* current = head;
    while (current != nullptr) {
        std::cout << current->data << " ";
        current = current->next;
    }
    std::cout << std::endl;
}

int main() {
    // 初始化链表头节点为空
    Node* head = nullptr;

    // 头插法插入节点
    head = insertAtBeginning(head, 3);
    head = insertAtBeginning(head, 2);
    head = insertAtBeginning(head, 1);

    // 打印链表
    std::cout << "链表(头插法): ";
    printList(head);

    // 重新初始化链表头节点为空
    head = nullptr;

    // 尾插法插入节点
    head = insertAtEnd(head, 1);
    head = insertAtEnd(head, 2);
    head = insertAtEnd(head, 3);

    // 打印链表
    std::cout << "链表(尾插法): ";
    printList(head);

    return 0;
}

请注意,这只是一个简单的例子,用于演示头插法和尾插法。在实际应用中,可能需要添加更多的功能和错误处理。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击