📄 link.txt
字号:
#include<stdio.h>
#include<conio.h>
#define MAXLEN 100
typedef struct
{
int data[MAXLEN];
int last;
} SeqList;
SeqList *L;
SeqList *InitList( );
int InsList(SeqList *L,int i,int x);
int DelList(SeqList *L,int i);
void LocationSeqList(SeqList *L, int x);
void ShowList( );
int main()
{
printf("\t\t\t顺序表子系统\n");
printf("\t\t\t********************\n");
printf("\t\t\t** 1-插入元素 **\n");
printf("\t\t\t** 2-删除元素 **\n");
printf("\t\t\t** 3-按值查找 **\n");
printf("\t\t\t********************\n");
printf("\t\t\t选择(1-3)操作:\n");
InitList();
int i;
for(i=1;i<15;i++)
{
InsList(L,i,2*i-1);
}
ShowList();
printf("\n");
printf("\t请选择1~3操作:");
char c1;
scanf("%c",&c1);
switch(c1)
{
case'1':
{
int i,p;
printf("\n\t请输入你要插入的元素位置:");
scanf("\t%d",&i);
printf("\n\t请输入你要插入的元素:");
scanf("\t%d",&p);
{
int j;
if (L->last==MAXLEN-1)
{
printf ("\t顺序表已满!");
return(-1); // 表满,不能插入
}
if (i<1 || i>L->last+2) // 检查给定的插入位置的正确性
{
printf("\t位置出错!");
return(0);
}
for(j=L->last;j>=i-1;j--) // 结点移动
{
L->data[j+1]=L->data[j];
}
L->data[i-1]=p; // 新元素插入
L->last++;
printf("\t显示插入元素后的所有顺序表\n");
ShowList(); // last仍指向最后元素
return (1);
}
}
break;
case'2':
{
printf("\t请输入删除第几个元素:");
int n;
scanf("%d",&n);
printf("\n\t显示删除后顺序表的所有元素:");
DelList(L,n);// 删除第4个元素
ShowList();
}
break;
case'3':
{
printf("\t请输入查找的元素:");
int m;
scanf("%d",&m);
LocationSeqList(L,m); // 查找元素16
printf("\n\t");
getch();
}
break;
default:printf("\t输入有误,请确认后再输入!");
}
}
SeqList *InitList( )
{
L=new SeqList;
L->last=-1; // 初始的顺序表为空
return L;
}
int InsList(SeqList *L,int i,int x)
{
int j;
if (L->last==MAXLEN-1)
{
printf ("\t顺序表已满!");
return(-1); // 表满,不能插入
}
if (i<1 || i>L->last+2) // 检查给定的插入位置的正确性
{
printf("\t位置出错!");
return(0);
}
for(j=L->last;j>=i-1;j--) // 结点移动
L->data[j+1]=L->data[j];
L->data[i-1]=x; // 新元素插入
L->last++; // last仍指向最后元素
return (1); // 插入成功,返回
}
int DelList(SeqList *L,int i)
{
int j;
if(i<1 || i>L->last+1) // 检查空表及删除位置的合法性
{
printf ("\t不存在第i个元素");
return (0);
}
for(j=i;j<=L->last;j++) // 向上移动
L->data[j-1]=L->data[j];
L->last--; // last仍指向最后元素
return(1); // 删除成功
}
void LocationSeqList(SeqList *L, int x)
{
int i=0;
while(i<=L->last && L->data[i]!=x)
i++;
if (i>L->last)
printf("\n\t未找到元素%d!\n",x);
else
printf("\n\t查找元素%d的位置为第%d位\n",x,i+1); // 输出存储位置
}
void ShowList( )
{
if(L->last==-1)
printf("\n\t顺序表为空!\n");
else
{
printf("\n\t");
int i=0;
while(i<=L->last)
{
printf("%-5d",L->data[i]);
i++;
}
}
printf("\n\t");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -