搜档网
当前位置:搜档网 › 线性表的顺序存储结构 代码

线性表的顺序存储结构 代码

#include
using namespace std;
const int Max=100;
template
class SeqList
{
int length;
T data[Max];
public:
SeqList();
SeqList(T d[],int n);
void display();
int Delete(int pos);
int DeleteKey(int key);
int DeleteAllKey(int key);
void Insert(int size ,int k);
void InsertBefore(int key,int k);
void GetLength();
void Location(int key);
};
template
void SeqList::GetLength()
{
cout<}
template
void SeqList::Location(int key)
{
for(int i=0;i{
if(data[i]==key)
{
cout<}
}
}
template
SeqList::SeqList(T d[],int n)
{
for(int i=0;i{
data[i]=d[i];
}
length=n;
}
template
void SeqList::display()
{
for(int i=0;i{
cout<}
cout<}
template
int SeqList::Delete(int pos)
{
int i;
if(pos>=length || pos<0)
{
throw(false);
}
if(length>=Max)
{
throw(false);
}
for(i=pos;i{
data[i]=data[i+1];
}
length--;
return 1;
}
template
int SeqList::DeleteKey(int key)
{
int m,i;
for(i=0;i{
if(data[i]==key)
{
m=i;
for(int i=m;i<=length-2;i++)
{
data[i]=data[i+1];
}
}
else if(i==(length-1))
{
throw(false);
}
}
length--;
return 1;
}
template
int SeqList::DeleteAllKey(int key)
{
int k=0;
for(int i=0;i-k{
if(data[i]==key)
{
k++;
}
else
{
data[i-k]=data[i];
}
}
length-=k;
return 1;
}
template
void SeqList::Insert(int size,int k)
{
for(int i=length-1;i>=size;i--)
{
data[i+1]=data[i];
}
data[size]=k;
length++;
}
template
void SeqList::InsertBefore(int key,int k)
{
int size;
for(int i=0;i{
if(data[i]==key)
{
size=i;

for(int i=length-1;i>=size;i--)
{
data[i+1]=data[i];
}
i++;
// break;
}
}
/*
for(int i=length-1;i>=size;i--)
{
data[i+1]=data[i];
}
*/
data[size]=k;
length++;
}
int main()
{
int a[]={1,2,2,3,4,5};
SeqLists(a,6);
s.display();
//s.InsertBefore(1,3);
//s.display();
//s.Location(2);
//s.GetLength();
//s.DeleteAllKey(2);
//s.display();
//s.Delete(6);
//s.display();
s.DeleteKey(9);
s.display();
system("pause");
}

相关主题