数据结构--线性表之StaticList类

本文介绍了一种基于静态数组实现的StaticList类的设计与实现细节。该类模板化定义了一个固定大小的顺序存储结构,并提供了基本操作方法。通过示例展示了如何创建StaticList实例并进行元素插入与访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

StaticList设计要点:

首先依旧还是使用类模板实现

继承自SeqList

使用原生数组作为顺序存储空间

使用数值模板参数决定数组大小

实现如下:

    template <typename T,int N>
    class StaticList : public SeqList<T>
    {
    protected:
        T m_space[N];//顺序存储空间,N为模板参数
    public:
        StaticList()//指定父类成员的具体值
        {
            this->m_array = m_space;
            this->m_length = 0;
        }
        int capacity() const
        {
            return N;
        }
    };
在构造函数里实现m_array和m_length的赋值,m_array指向原生数组所在的空间,获取最大容量的实现即返回数值模板参数N。

测试代码:

    StaticList<int,5> list;

    for(int i = 0; i < list.capacity(); i++)
    {
        list.insert(0,i);
    }
    for(int i = 0; i < list.length(); i++)
    {
        cout << list[i] << endl;
    }

    cout << endl;

    list[0] *= list[0];
    cout << list[0] << endl;
输出结果:

4
3
2
1
0

16
StaticList类的实现还是十分简单的,下一篇就开始实现比较有难度的DynamicList类。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值