#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<math.h>
#include<string>
#define MAXSIZE 10
typedef int ElementType;
using namespace std;
typedef struct Lnode *list;
struct Lnode{
ElementType data[MAXSIZE];
int last;//指向最后一个单元
};
struct Lnode L;//定义变量L
list ptrL;//定义指针变量
list MakeEmpty(){
list p;
p=(list)malloc(sizeof(struct Lnode));//C语言里的
p->last=-1;
return p;
}//创建空线性表
void Insert(ElementType x,int i,list ptrL){
int j;
if(ptrL->last==MAXSIZE-1){
cout<<"没有空间插入";
return;
}
if(i>ptrL->last+2 || i<1){
cout<<"请插入正确的位置";
return;
}
for(j=ptrL->last;j>=i-1;j--){
ptrL->data[j+1]=ptrL->data[j];
}
ptrL->data[i-1]=x;
ptrL->last++;
return;
}//插入元素
void Printline(list ptrL){
for(int i=0;i<=ptrL->last;i++){
cout<<ptrL->data[i]<<" ";
}
}
void Delete(int i,list ptrL){
if(i>ptrL->last+1||i<1){
cout<<"插入不合法";
return;
}
for(int j=i-1;j<ptrL->last;j++){
ptrL->data[j]=ptrL->data[j+1];
}
ptrL->last--;
return;
}
void Find(ElementType i, list ptrL){
int tag=0;
int j;
for(j=0;j<=ptrL->last;j++){
if(ptrL->data[j]==i){
tag=1;
break;
}
}
if(tag==1) cout<<j+1<<endl;
else cout<<"Not find!"<<endl;
}
int main(){
ptrL=MakeEmpty();//创建空线性表
for(int i=0;i<10;i++){
Insert(i,1,ptrL);//插入
}
Delete(3,ptrL);//删除第三个位置的元素
Find(5,ptrL);//查找5这个数字的位置
Printline(ptrL);
return 0;
}