顺序表,,出现乱码
int SeqList::list_insert(int item,int i){
if(size==maxsize)
{
cout<<"顺序表已满,无法插入"<<endl;
return error;
}
if(i<0||i>size)
{
cout<<"位置越界,无法插入"<<endl;
return error;
}
int j;
for( j=size;j>i;j--)
list[j]=list[j-1];
list[j]=item; //这样没出现乱码。。
size++;
return ok;
}
for( j=size;j>i;j--)
list[j]=list[j-1];
list[j-1]=item; //这样出现乱码.。。我想把item差前一个位置。。全程序在下面
#include<iostream>
using namespace std;
#define ok 0;
#define error -1;
class SeqList
{
private:
int *list; //元素数组
int maxsize; //顺序表最大长度
int size; //顺序表实际长度
public:
SeqList(int max); //构造函数
~SeqList(); //析构函数
int list_size(); //获取实际长度
int list_insert(int item,int i); //插入一个元素
int list_del(int i); //删除一个元素,返回删除的元素值
int list_get(int i); //获取一个元素值,返回元素值
};
SeqList::SeqList(int max)
{
maxsize=max;
size=0;
list=new int[maxsize];
}
SeqList::~SeqList()
{
delete[]list;
}
int SeqList::list_size()
{
return size;
}
int SeqList::list_insert(int item,int i)
{
if(size==maxsize)
{
cout<<"顺序表已满,无法插入"<<endl;
return error;
}
if(i<0||i>size)
{
cout<<"位置越界,无法插入"<<endl;
return error;
}
int j;
for( j=size;j>i;j--)
list[j]=list[j-1];
list[j]=item;
size++;
return ok;
}
int SeqList::list_del(int i)
{
if(size==0)
{
cout<<"顺序表已空,无法删除"<<endl;
return error;
}
if(i<0||i>size-1)
{
cout<<"位置越位,无法删除"<<endl;
return error;
}
int temp=list[i];
for(int j=i;j<size;j++)
list[j]=list[j+1];
size--;
return temp;
}
int SeqList::list_get(int i)
{
if(i<0||i>size-1)
{
cout<<"位置越界,无法获取";
return error;
}
else
return list[i];
}
int main()
{
int i,temp;
SeqList mylist(100);
int len,item,inspos,delpos,getpos;//创建顺序列表
cin>>len;
for(i=0;i<len;i++)
{
cin>>temp;
mylist.list_insert(temp,i);
}
for(i=0;i<mylist.list_size();i++)
{
cout<<mylist.list_get(i)<<" ";
}
cout<<endl;
cin>>item>>inspos;
mylist.list_insert(item,inspos);
for(i=0;i<mylist.list_size();i++)
cout<<mylist.list_get(i)<<" ";
cout<<endl;
cin>>delpos;
mylist.list_del(delpos);
for(i=0;i<mylist.list_size();i++)
cout<<mylist.list_get(i)<<" ";
cout<<endl;
cin>>getpos;
mylist.list_insert(item,inspos);
cout<<mylist.list_get(getpos);
cout<<endl;
return 0;
}