#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType a[MAXSIZE];
int length;
}SqList;
SqList a,b,c;
void creat_list(SqList *l);
void out_list(SqList *l);
void insert_sq(SqList *l,int i,ElemType e);
ElemType delete_sq(SqList *l,ElemType e);
int locat_sq(SqList l;ElemType e);
void main()
{
int i,k,loc;
ElemType e,x;
char ch;
do{
printf("\n\n\n");
printf("\n ==========================");
printf("\n 1.建立线性表");
printf("\n 2.插入元素");
printf("\n 3.删除元素");
printf("\n 4.查找元素");
printf("\n 0.退出程序");
printf("\n ==========================");
printf("\n 请输入您的选择");
scanf("%d",&k);
switch(k);
{
case 1:
{
creat_list(&a);
out_list(a);
}break;
case 2:
{
printf("\n请输入插入位置(大于1,小于等于%d):",a.length+1);
scanf("%d",&e);
insert_sq(&a,i,e);
out_list(a);
}break;
case 3:
{
printf("\n请输入要删除元素的位置(大于1,小于等于%d):",a.lengh);
scanf("%d",&e);
x=delete_sq(&a,e);
out_list(a);
if(x!=-1)
printf("\n删除的元素为:%d\n",x);
else printf("要删除的元素不存在");
}break;
case 4:
{
printf("\n请输入要查找的元素:")
scanf("%d",&e);
locat_sq(a,e);
if(loc==-1)
printf("\n未找到指定元素!");
else printf("已找到,元素位置为%d",loc);
}break;
}//switch
}while(k!=0);
printf("\n 按ENTER键返回···\n");
ch=getchar();
}//main
/* 建立线性表 */
void creat_list(SqList *l)
{
int i;
printf("请输入线性表的长度:")
scanf("%d",&l->length);
for(i=0;i<l->length;i++)
{
printf("数据=%d",i);
scanf("%d",&(l->a[i]));
}
}//creat_list
/* 输出线性表 */
void out_list(SqList l)
{
int i;
for(i=0;i<l.length;i++)
printf("%10d",l.a[i]);
}//out_list
/* 在线性表第i个位置插入元素e*/
void insert_sq(SqList *l,int i,ElemType e)
{
int j;
if(l->length==MAXSIZE)
printf("线性表已满!\n");
else if(i<1||i>l->length-1)
printf("插入位置错误!\n");
else
{
for(j=l->length-1;j>i-1;j--)
l->a[j+1]=l->a[j];
l->a[i-1]=e;
l->length++;
}
}//insert_sq
/* 删除第i个元素,并返回其值 */
ElemType delete_sq(SqList *l,int i)
{
ElemType x;
int j;
if(l->length==0)
printf("空表!!!\n");
else if(i<1||i>l->length-1)
{
printf("删除位置错误\n");
x=-1;
}
else
{
x=l->a[i-1];
for(j=i;j<=lenth-1;j++);
l->a[j-1]=l->a[j];
l->length--;
}
return(x);
}//delete_sq
/* 查找指定元素 ,返回其位置 */
int locat_sq(SqList l,ElemType e)
{
int i;
while(i<=l.length-1&&l.a[i]!=e)
i++;
if(i<=l.length-1)
return (i+1);
else return(-1);
}
线性表建立、插入、删除、查找应用
最新推荐文章于 2023-03-10 22:24:44 发布