下面是使用C++编写的整数链表类的示例代码:

#include <iostream>

template <typename T>
class Node {
public:
    T data;
    Node<T>* next;

    Node(T data) : data(data), next(nullptr) {}
};

template <typename T>
class LinkedList {
private:
    Node<T>* head;
    int size;

public:
    LinkedList() : head(nullptr), size(0) {}

    void insertNode(T value, int pos) {
        if (pos < 0 || pos > size) {
            std::cout << "Invalid position!" << std::endl;
            return;
        }

        Node<T>* newNode = new Node<T>(value);

        if (pos == 0) {
            newNode->next = head;
            head = newNode;
        } else {
            Node<T>* current = head;
            for (int i = 0; i < pos - 1; i++) {
                current = current->next;
            }
            newNode->next = current->next;
            current->next = newNode;
        }

        size++;
    }

    void deleteNode(int pos) {
        if (pos < 0 || pos >= size) {
            std::cout << "Invalid position!" << std::endl;
            return;
        }

        Node<T>* nodeToDelete;

        if (pos == 0) {
            nodeToDelete = head;
            head = head->next;
        } else {
            Node<T>* current = head;
            for (int i = 0; i < pos - 1; i++) {
                current = current->next;
            }
            nodeToDelete = current->next;
            current->next = nodeToDelete->next;
        }

        delete nodeToDelete;
        size--;
    }

    void traverse() {
        Node<T>* current = head;
        while (current != nullptr) {
            std::cout << current->data << " ";
            current = current->next;
        }
        std::cout << std::endl;
    }

    bool search(T value) {
        Node<T>* current = head;
        while (current != nullptr) {
            if (current->data == value) {
                return true;
            }
            current = current->next;
        }
        return false;
    }
};

int main() {
    LinkedList<int> list;

    list.insertNode(5, 0);
    list.insertNode(10, 1);
    list.insertNode(15, 2);
    list.insertNode(20, 1);

    std::cout << "Linked List: ";
    list.traverse();

    std::cout << "Search 10: " << (list.search(10) ? "Found" : "Not found") << std::endl;

    list.deleteNode(1);

    std::cout << "Linked List after deletion: ";
    list.traverse();

    return 0;
}

这个程序实现了一个整数链表类(LinkedList),其中包括了创建链表、插入节点、删除节点、遍历输出链表以及查询节点的功能。使用类模板实现通用的链表类,可以存储任意类型的数据。

在示例代码中,我们首先创建了一个整数类型的链表(LinkedList list)。然后使用insertNode函数在指定位置插入节点,使用deleteNode函数删除指定位置的节点,使用traverse函数遍历并输出链表,使用search函数查询链表中是否存在指定值的节点。

运行程序会输出以下结果:

Linked List: 5 20 10 15
Search 10: Found
Linked List after deletion: 5 10 15

注意:示例代码中没有包含链表的销毁函数,需要在程序结束时手动释放链表中的内存,否则会造成内存泄漏

用c++写程序:整数链表:要求编程实现整数链表类实现以下功能: 1链表的创建。2插入结点要能在所有可能的位置上插入结点。 3删除节点。4链表遍历输出。5实现结点的查询6注意:考虑用类模板实现通用的链表类。

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

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