📄 顺序表.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#define ListSize 100
typedef int DataType;
typedef struct
{ DataType data[ListSize];
int length;
}SeqList;
void main()
{
int LocateList(SeqList L,DataType x);
void PrintList(SeqList L,int n);
void InsertList(SeqList *L,DataType x,int i);
void DeleteList(SeqList *L,int i);
SeqList L;
int i,n=10,x;
printf(" 欢迎进入顺序表程序!\n");
printf("请输入10个数据:");
for (i=0;i<n;i++)
scanf("%d",&L.data[i]);
L.length=n;
PrintList(L,n);
printf("输入要查找的值:");
scanf("%d",&x);
i=LocateList(L,x);
if (i==0)
printf("未找到%d!\n",x);
else
printf("找到%d,在第%d个位置上!\n",x,i);
printf("输入要插入的位置:");
scanf("%d",&i);
printf("输入要插入的元素:");
scanf("%d",&x);
InsertList(&L,x,i);
n=L.length;
PrintList(L,n);
printf("输入要删除的位置:");
scanf("%d",&i);
DeleteList(&L,i);
n=L.length;
PrintList(L,n);
printf(" 谢谢使用!\n");
}
int LocateList(SeqList L,DataType x)
{ int i=0;
while (i<L.length && L.data[i]!=x)
++i;
if (i<L.length) return i+1;
else return 0;
}
void InsertList(SeqList *L,DataType x,int i)
{
int j;
if (i<1 || i>L->length+1)
{
printf("插入位置非法\n");
exit(0);
}
if (L->length>=ListSize)
{
printf("表空间溢出,退出运行\n");
exit(0);
}
for (j=L->length-1;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->length++;
}
void DeleteList(SeqList *L,int i)
{
int j;
if (L->length==0)
{
printf("线性表为空,退出运行\n");
exit(0);
}
if (i<1 || i>L->length)
{
printf("删除位置非法\n");
exit(0);
}
for (j=i;j<=L->length-1;j++)
L->data[j-1]=L->data[j];
L->length--;
}
void PrintList(SeqList L,int n)
{ int i;
for (i=0;i<n;i++)
printf("%d ",L.data[i]);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -