请教一个有关数据结构的问题

来源:百度知道 编辑:UC知道 时间:2024/07/01 15:08:45
template<class T>
class List
{
private:
int n;
int MaxSize;
T *data; (1)
public:
List(int Max=10)
~List(){delete []data;}(2)
bool Empty() const{return n==0;} (3)
int Length() const{return n;}
int Locate(const T&x) const; (4)
bool Retrieve(int k,T&x) const;
List<T>&Insert(int k,const T&x);(5)
List<T>&Delete(int k,T&x);
void PrintList(ostream &out) const;
}

(1) T *data;
为什么数组data是这么定义,我觉得应该这样定义:T data[20];
(2) ~List(){delete []data;}
这个析构函数的实现部分中delete []data;这样写是什么意思,我问
的不是功能.而是格式!
(3)bool Empty() const{return n==0;}
这里出现const是什么意思,为什么要放这里
(4)int Locate(const T&x) const;
定位元素x函数的参数中为什么还有const
(5)List<T>&Insert(int k,const T&x);
List<T>&是什么意思
引用是嘛意思?

(1) T *data; 是创建T指针

(2) ~List(){delete []data;}
delete []data这么写只是格式问题...你也可以写成delete data[]

(3)bool Empty() const{return n==0;}
Here..Empty( ) is a const member function,也就是静态函数..
作用是保证返回值不被修改(在任何地方)...

(4)int Locate(const T&x) const;
参数中的const 是为了保证参数x在Locate方法中不被改变

(5)List<T>&Insert(int k,const T&x);
List<T>&是函数的返回值...返回的是List<T>的引用...

ps:你的所有问题没有一个是”有关数据结构的问题”~~