#include
typedef struct seqlist //定義線性表的順序儲存結構
{
int *elem; //儲存空間分配的首地址
int length ; //線性長度
}seqlist;
//此變數可作為線性表資料型別定義線性表
void init(seqlist &l) //線性表的初始化
l.elem=new int[20]; //分配儲存空間儲存線性表中的元素
l.length=0; //空線性表的長度為0
}
void delseqlist(seqlist &l) //銷燬建立的線性表
delete []l.elem;
l.length=0;
void insert(seqlist &l,int i, int x)//元素e插入線性表中的第i個位置上
if(il.length+1)
cout
for(int j=l.length;j>=i;j--)
l.elem[j+1]=l.elem[j]; //第i個元素及其後的元素依次後移
l.elem[i]=x; //插入新元素於第i個位置上
l.length++; //線性表的長度增1
void printout(seqlist &l) //輸出線性表當中的所有元素
int j;
for(j=1;j
int llength(seqlist &l) //求線性表的長度
return l.length;
int locateElem(seqlist &l, int e) //在順序表L中查詢第一個值於e相等的資料元素
int i=1;
int *p;
p=l.elem; p++; //p指向線性表中的第一個元素
while (i
++i;
if(i
return i;
else
return 0; //返回結果
int *p,*q;
if((il.length)) cout
p=&(l.elem[i]); //將被刪元素送給e
e=*p;
q=l.elem+l.length; //表尾元素的位置
for(++p; p
*(p-1)=*p;//被刪元素之後的元素前移
l.length--;
void invert( seqlist &l,int s,int t) //就地逆置
int k;
int w;
for(k=s;k
w=l.elem[k];
l.elem[k]=l.elem[s+t-k];
l.elem[s+t-k]=w;
void main() //構成完整的源程式並對演算法進行測試
seqlist l;
int x,a,y,b,j;
init(l); //初始化空線性表l
cin>>a;
cin>> x;
insert(l,j,x);
printout(l);
cin>>y;
Delete(l,y,b);
invert(l,1,l.length );
cin>>x;
我以前做的
#include
#include
#include
typedef struct seqlist //定義線性表的順序儲存結構
{
int *elem; //儲存空間分配的首地址
int length ; //線性長度
}seqlist;
//此變數可作為線性表資料型別定義線性表
void init(seqlist &l) //線性表的初始化
{
l.elem=new int[20]; //分配儲存空間儲存線性表中的元素
l.length=0; //空線性表的長度為0
}
void delseqlist(seqlist &l) //銷燬建立的線性表
{
delete []l.elem;
l.length=0;
}
void insert(seqlist &l,int i, int x)//元素e插入線性表中的第i個位置上
{
if(il.length+1)
cout
for(int j=l.length;j>=i;j--)
l.elem[j+1]=l.elem[j]; //第i個元素及其後的元素依次後移
l.elem[i]=x; //插入新元素於第i個位置上
l.length++; //線性表的長度增1
}
void printout(seqlist &l) //輸出線性表當中的所有元素
{
int j;
for(j=1;j
cout
}
int llength(seqlist &l) //求線性表的長度
{
return l.length;
}
int locateElem(seqlist &l, int e) //在順序表L中查詢第一個值於e相等的資料元素
{
int i=1;
int *p;
p=l.elem; p++; //p指向線性表中的第一個元素
while (i
++i;
if(i
return i;
else
return 0; //返回結果
}
{
int *p,*q;
if((il.length)) cout
p=&(l.elem[i]); //將被刪元素送給e
e=*p;
q=l.elem+l.length; //表尾元素的位置
for(++p; p
*(p-1)=*p;//被刪元素之後的元素前移
l.length--;
}
void invert( seqlist &l,int s,int t) //就地逆置
{
int k;
int w;
for(k=s;k
{
w=l.elem[k];
l.elem[k]=l.elem[s+t-k];
l.elem[s+t-k]=w;
}
}
void main() //構成完整的源程式並對演算法進行測試
{
seqlist l;
int x,a,y,b,j;
init(l); //初始化空線性表l
cout
cin>>a;
cout
for(j=1;j
{
cin>> x;
insert(l,j,x);
}
cout
printout(l);
cout
cin>>y;
Delete(l,y,b);
cout
printout(l);
invert(l,1,l.length );
cout
printout(l);
cout
cin>>x;
cout
cout
cout
}
我以前做的