想用VC6.0学一下数据结构发现还是不会呀,能不能教一下该如何实现线性表的顺序结构(按照我已经抄的代码

const int MAX_LIST_SIZE=1000;//顺序表最大元素个数
template<class ElemType>
class SqList
{
protected:
//顺序表实现的成员
int count;//元素个数
ElemType elem[MAX_LIST_SIZE];//元素存储空间
//辅助函数
bool Full() const;//判断线性表是否已满
void Init();//初始化线性表
public:
//抽象数据类型方法及重载编译系统默认方法声明
SqList();//无参数的构造函数
~SqList(){};
//析构函数
int Length() const;//求线性表长度
bool Empty() const;//判断线性表是否为空
void Clear();//将线性表清空
void Traverse(void (*Visit)(ElemType &));//遍历线性表
Status_code GetElem(int position,ElemType &e) const;//求指定位置的元素
Status_code SetElem(int position,const ElemType &e);//设定指定位置的元素值
Status_code Delte(int position,ElemType &e);//删除元素
Status_code Insert(int position,const ElemType&e);//插入元素
SqList(const SqList<ElemType>©);//复制构造函数
SqList<ElemType>&operator=(const SqList<ElemType>©);//赋值语句重载
}
template<class ElemType>
bool SqList<ElemType>::Full()const
{//操作结果:如果线性表已满,则返回true,否则返回false
return count==MAX_LIST_SIZE;
}
template <class ElemType>
void SqList<ElemTpye>::Init()
{//初始化线性表
count=0;
}
template<class ElemType>
SqList<ElemType>::SqList()
{//操作结果:构造一个空线性表
Init();
}
template<class ElemType>
int SqList<Elemplate>::Length()
{//返回线性表元素个数
return count;
}
template<class Elemplate>
bool SqList<Elemplate>::Empty()const
{//如果线性表为空返回true,否则返回false
return count==0;
}
template<class ElemType>
void SqList<ElemType>::Clear()
{//清空线性表
count=0;
}
template<class ElemType>
void SqList<ElemType>::Traverse(void(*visit)ElemType&)
{//依次对线性表每个元素调用函数*visit
for(int curPosition=1;curPosition<=Length();curPosition++)
{//对线性表的每个元素调用*visit函数
(*visit)(elem[curPosition]-1);
}
}
template<class ElemType>
Status_code SqList<ElemType>::GetElem(int position,ElemType&e)const
{//当线性表的第position个元素存在的时候用e返回其值,函数返回elem_FOUND,否则函数返回NOT_FOUND
if(position<0||position>Length())
{//position范围错误
return NOT_PRESENT;
}
else
{//position合法
e=elem [position-1];
return ENTRY_FOUND;//元素存在
}
}
template<class ElemType>
Status_code SqList<ElemType>::SetElem(int position,const Elemtype &e)
{//将线性表第position位置的元素赋值为e
if(position<0||position>Length()
{//position范围错误
return RANGE_ERROR;
}
else
{//position范围合法
elem[position]-1=e;
}
}
void main()
{
}

第1个回答  2013-04-13
给你个代码:可以实现顺序表的创建,删除,添加,等,你好好看看。#include<iostream.h>
const int maxsize=1000;
struct sequenlist{
char a[maxsize];
int len;
};
sequenlist setnull(sequenlist L)
{
L.len=0;
return L;
}
sequenlist insert(sequenlist L,char x, int i)
{
int j;
if(L.len>=maxsize-1)
cout<<"overflow"<<endl;
else if((i<1)||(i>L.len+1))
cout<<"position is not correct"<<endl;
else
{
for(j=L.len;j>=i;j--)
L.a[j+1]=L.a[j];
L.a[i]=x;
L.len++;
}
return L;

}
sequenlist deletel(sequenlist L,int i)
{
int j;
if((i<1)||(i>L.len))
cout<<"position is not correct"<<endl;
else{
for(j=i+1;j<=L.len;j++)
L.a[j-1]=L.a[j];
L.len--;
}
return L;
}
int locate(sequenlist L,char x)
{
int j=1;
while((j<=L.len)&&(L.a[j]!=x))
j++;
if(j<=L.len) return j;
else return 0;
}
sequenlist change(sequenlist L,char x, char y)
{
int j;
for(j=1;j<=L.len;j++)
if(L.a[j]==x)
L.a[j]=y;
return L;
}

void print(sequenlist L)
{
int j;
for(j=1;j<=L.len;j++)
cout<<L.a[j]<<" ";
cout<<endl;
}
int get(sequenlist L,int i)
{
if((i<1)||(i>L.len)) return NULL;
else return L.a [i];

}
void main()
{
sequenlist L;char x,y;int n;
L=setnull(L);
cout<<"请输入要插入的元素个数:";
cin>>n;
for(int j=1;j<=n;j++)
cin>>L.a[j];
L.len=n;
print(L);
cout<<"请输入要插入的元素及位置:";
cin>>x>>j;
L=insert(L,x,j);
print(L);
cout<<"请输入要删除元素的位置:";
cin>>j;
L=deletel(L,j);
print(L);
cout<<"请输入要查找的元素";
cin>>x;
j=locate(L,x);
if(j!=0)cout<<x<<"在第"<<j<<"个位置";
else cout<<"找不到";
cout<<endl;
print(L);
cout<<"请输入要更新前的元素值";
cin>>x;
cout<<"请输入要更新后元素的值";
cin>>y;
L=change(L,x,y);
print(L);
cout<<"请输入要取出元素的位置:";
cin>>j;
x=get(L,j);
cout<<j<<"位置的值为"<<x<<endl;
}本回答被提问者采纳
相似回答