标题:求助
只看楼主
haoti
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-11
 问题点数:0 回复次数:1 
求助
#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
不知是为什么
搜索更多相关主题的帖子: private include public double return 
2008-03-24 22:07
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分: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;    
    cout<<nn<<endl;
    if(nn==0)
    {cout<<"underflow!"<<endl;return ;}
    if((i<0)||(i>nn))
    {cout<<"Not this element in the list "<<endl;return;}
    for(k=i;k<nn;k++)
    v[k]=v[k+1];
    nn=nn-1;

    return ;
}

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;}

[[it] 本帖最后由 sunkaidong 于 2008-3-25 10:18 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-03-24 22:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-205139-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.648402 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved