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

C++实现线性表-顺序表

作者:野牛程序员:2023-12-05 09:20:03 C++阅读 2633

线性表的顺序表是一种基于数组的数据结构,可以在内存中顺序存储元素。以下是一个简单的C++代码示例,演示如何实现线性表的顺序表:

#include <iostream>

const int MAX_SIZE = 100; // 定义顺序表的最大长度

class SequenceList {
private:
    int data[MAX_SIZE]; // 用数组存储元素
    int length;          // 当前顺序表的长度

public:
    // 构造函数,初始化顺序表
    SequenceList() {
        length = 0;
    }

    // 插入元素到顺序表的指定位置
    void insert(int position, int element) {
        if (position < 0 || position > length || length >= MAX_SIZE) {
            // 位置不合法或者顺序表已满
            std::cout << "插入失败,位置不合法或顺序表已满。" << std::endl;
            return;
        }

        // 将位置position后的元素依次向后移动一位
        for (int i = length - 1; i >= position; --i) {
            data[i + 1] = data[i];
        }

        // 在位置position插入新元素
        data[position] = element;

        // 更新顺序表长度
        ++length;
    }

    // 删除顺序表指定位置的元素
    void remove(int position) {
        if (position < 0 || position >= length) {
            // 位置不合法
            std::cout << "删除失败,位置不合法。" << std::endl;
            return;
        }

        // 将位置position后的元素依次向前移动一位
        for (int i = position; i < length - 1; ++i) {
            data[i] = data[i + 1];
        }

        // 更新顺序表长度
        --length;
    }

    // 获取顺序表指定位置的元素值
    int get(int position) {
        if (position < 0 || position >= length) {
            // 位置不合法
            std::cout << "获取失败,位置不合法。" << std::endl;
            return -1; // 返回一个特殊值表示获取失败
        }

        return data[position];
    }

    // 打印顺序表的元素
    void print() {
        std::cout << "顺序表元素: ";
        for (int i = 0; i < length; ++i) {
            std::cout << data[i] << " ";
        }
        std::cout << std::endl;
    }
};

int main() {
    SequenceList myList;

    // 插入元素
    myList.insert(0, 1);
    myList.insert(1, 2);
    myList.insert(1, 3);

    // 打印顺序表
    myList.print();

    // 删除元素
    myList.remove(1);

    // 打印顺序表
    myList.print();

    // 获取元素
    int element = myList.get(1);
    std::cout << "获取的元素值: " << element << std::endl;

    return 0;
}

这是一个简单的顺序表实现,包括插入、删除、获取和打印操作。可以根据需要扩展它以满足特定的要求。

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

最新推荐

热门点击