求助
#include "sq_LList.h"int main()
{sq_LList<double>s1(100);
cout<<"第一次输出寻许表对象"<<endl;
s1.prt_sq_LList();
s1.ins_sq_LList(0,1.5);
s1.ins_sq_LList(1,2.5);
s1.ins_sq_LList(4,3.5);
cout<<"第2次输出寻许表对象"<<endl;
s1.prt_sq_LList();
s1.del_sq_LList(0);
s1.del_sq_LList(2);
cout<<"第3次输出寻许表对象"<<endl;
s1.prt_sq_LList();
return 0;}
#include<iostream>
using namespace std;
template<class T>
class sq_LList
{private:
int mm;
int nn;
T * v;
public:
sq_LList(){mm=0;nn=0;return 0;}
sq_LList(int);
void prt_sq_LList();
int flag_sq_LList();
void ins_sq_LList(int,T);
void del_sq_LList(int);
};
template<class T>
sq_LList<T>::sq_LList(int m)
{mm=m;
v=new T[mm];
nn=0;
return ;
}
template<class T>
void sq_LList<T>::prt_sq_LList()
{int i;
cout<<"nn="<<nn<<endl;
for (i=0;i<nn;i++) cout << v[i]<<endl;
return ;}
template<class T>
int sq_LList<T>::flag_sq_LList()
{if (nn==mm)return(-1);
if (nn=0) return(0);
return(1);}
template<class T>
void sq_LList<T>:: ins_sq_LList(int i, T b)
{int k;
if (nn==mm)
{cout<<"overflow"<<endl;
return ;}
if (i>nn) i=nn+1;
if (i<1) i=1;
for(k=nn;k>=i;k--)
v[k]=v[k-1];
v[i-1]=b;
nn=nn+1;
return ;}
template<class T>
void sq_LList<T>:: del_sq_LList(int i)
{int k;
if(nn=0)
{cout<<"underflow!"<<endl;return ;}
if((i<1)||(i>nn))
{cout<<"Not this element in the list "<<endl;return;}
for(k=i;k<nn;k++)
v[k-1]=v[k];
nn=nn-1;
return ;
}
以上两段程序码是有关顺序表类的,在vc++6.0上运行后与书上给出的答案不符,书上的答案是
第一次```
nn=0
第2次```
nn=3
2.5
1.5
3.5
not thiselement in the list
第三次```
nn=2
2.5
3.5
而我在计算机上的是
第一次```
nn=0
第2次```
nn=3
2.5
1.5
3.5
Not this element in the list
Not this element in the list
第三次```
nn=0
不知是为什么