#include <iostream>
#define maxn 1000
using namespace std;
struct List{
int data[maxn];
int last;
};
List *MakeEmpty();
int FindKth(int K,List *list);
int Find(int X,List *list);
void Insert(int X,int i,List *list);
void Delete(int i,List *list);
int Length(List *list);
List *MakeEmpty(){
List *list =(List*)malloc(sizeof(List));
list->last=-1;
return list;
}
int FindKth(int K,List *list){
if(K<1||K>list->last){
cout<<"不存在";
}else{
return list->data[K-1];
}
}
int Find(int X,List *list){
int i=0;
while(i<=list->last&&list->data[i]!=X){
++i;
}
if(i>list->last){
return -1;
}else{
return i;
}
}
void Insert(int X,int i,List *list){
if(list->last==maxn-1){
cout<<"表已满";
}
if(i<1||i>list->last+2){
cout<<"位置不合法";
}else{
for(int j=list->last;j>=i-1;--j){
list->data[j+1]=list->data[j];
}
list->data[i-1]=X;
list->last++;
}
}
void Delete(int i,List *list){
if(i<1||i>list->last+1){
cout<<"位置不合法";
return ;
}else{
for(int j=i;j<=list->last;++j){
list->data[j-1]=list->data[j];
}
list->last--;
}
}
int Length(List *list){
return list->last+1;
}
void print(List *list){
int i;
for(i=0;i<=list->last;++i){
cout<<list->data[i]<<' ';
}
}
int main()
{
//初始化
List* list = MakeEmpty();
for(int i=0;i<10;++i){
Insert(i,i+1,list);
}
list->last=9;
//函数测试
int num=7;
Insert(num,5,list);
print(list);
Delete(5,list);
cout<<endl;
print(list);
return 0;
}
顺序结构(数组)线性表
最新推荐文章于 2024-08-31 12:08:21 发布