#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
#define ERROR -1
typedef struct LNode *PtrtoNode;
struct LNode{
int data[MAXSIZE];
int Last;
};
typedef PtrtoNode List;
List MakeEmpty(){
List L;
L=(List)malloc(sizeof(struct LNode));
L->Last=-1;
return L;
}
void Find(List L,int X){
int i = 0;
while(i<=L->Last&&L->data[i]!=X){
i++;
}
if(i>L->Last) printf("查找数据不存在");
else printf("查找数据下标为:%d",i);;
}
bool Insert(List L,int n,int i){
int j;
if(L->Last==MAXSIZE-1){
printf("表满!");
return false;
}
if(i<-1 || i>L->Last+2){
printf("插入的位置不合法!");
return false;
}
for(j=L->Last;j>=i-1;j--){
L->data[j+1]=L->data[j];
}
L->data[i-1]=n;
L->Last++;
return true;
}
bool Delete(List L,int i){
int j;
if(i<-1 || i>L->Last+1){
printf("删除的位置不合法!");
return false;
}
for(j=i;j<=L->Last;j++){
L->data[j-1]=L->data[j];
}
L->Last--;
return true;
}
void Length(List L){
printf("数组长度为:%d",L->Last+1);
}
void main(){
List L=MakeEmpty();
int n,num,find,del;
printf("请输入要输入多少个数:");
scanf("%d",&num);
for(int i=1;i<=num;i++){
scanf("%d",&n);
Insert(L,n,i);
}
for(int j=0;j<num;j++){
printf("%d ",L->data[j]);
}
printf("\n");
printf("请输入要查找的数:");
scanf("%d",&find);
Find(L,find);
printf("\n");
printf("请输入要删除的数:");
scanf("%d",&del);
Delete(L,del);
for(j=0;j<=L->Last;j++){
printf("%d ",L->data[j]);
}
printf("\n");
Length(L);
printf("\n");
}
转载请注明原文地址:https://blackberry.8miu.com/read-14670.html