#include <iostream>

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

int main() {
    Node* head = nullptr;
    Node* current = nullptr;

    // 输入元素并创建链表
    int num;
    while (std::cin >> num) {
        if (num == 0) {
            break;
        }

        Node* newNode = new Node;
        newNode->data = num;
        newNode->next = nullptr;

        if (head == nullptr) {
            head = newNode;
            current = newNode;
        } else {
            current->next = newNode;
            current = newNode;
        }
    }

    // 输出链表元素
    current = head;
    while (current != nullptr) {
        std::cout << current->data << ' ';
        current = current->next;
    }
    std::cout << std::endl;

    // 删除第一个元素
    Node* temp = head;
    head = head->next;
    delete temp;

    // 输出删除元素后的链表
    current = head;
    while (current != nullptr) {
        std::cout << current->data << ' ';
        current = current->next;
    }
    std::cout << std::endl;

    // 输出链表长度
    int length = 0;
    current = head;
    while (current != nullptr) {
        length++;
        current = current->next;
    }
    std::cout << length << std::endl;

    // 在第二个元素处插入新元素100
    Node* newNode = new Node;
    newNode->data = 100;
    newNode->next = head->next;
    head->next = newNode;

    // 输出第一个元素100所在位置
    int position = 1;
    current = head;
    while (current != nullptr) {
        if (current->data == 100) {
            break;
        }
        position++;
        current = current->next;
    }
    std::cout << position << std::endl;

    // 释放内存
    current = head;
    while (current != nullptr) {
        temp = current;
        current = current->next;
        delete temp;
    }

    return 0;
}
C++ 单链表操作:创建、删除、插入、查找示例

原文地址: https://www.cveoy.top/t/topic/o8Fm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录