顺序存储线性表的分析

问题:
长度相同的两个SeqList,插入和删除操作的平均耗时是否相同?

下面的代码正确吗?为什么?

 

 

 

 2.

 

 导致上面出现问题的原因就是,拷贝构造函数和赋值操作,因此我们可以这样解决:

对于容器类型的类,可以考虑禁用拷贝构造和赋值操作。

template<typename T>
class List : public Object
{
protected:
    List(const List&);
    List& operator= (const List&);
public:
    List() {}
    //...
}

下面的代码正确吗?为什么?

int main()
{
    StaticList<int ,5> list;
    
    for(int i=0; i<list.capacity(); i++)
    {
        list[i]= i*i;     //将线性表当作数组使用
    }
    
    return 0;
}

这段程序会崩掉,因为你把线性表当作数组来使用了。

 线性表必须先插入元素,才能使用操作符[]访问元素。

问题分析:
顺序存储结构线性表提供了数组操作访问操作符重载通过重载能够快捷方便的获取目标位置处的数据元素在具体的使用形式上类似数组,但是由于本质不同,不能代替数组使用

 

 

posted @ 2019-12-17 22:57  一代枭雄  阅读(184)  评论(0编辑  收藏  举报