数据结构第一次上机
实验内容
#include "stdio.h"
#define MaxSize 50
typedef struct SqList{
int data[MaxSize];
int length;//记录表长
}SqList;
void InitSqList(SqList &L)//初始化顺序表
{
L.data[0]=11;
L.data[1]=22;
L.data[2]=33;
L.data[3]=44;
L.data[4]=55;
L.length=5;
}
void Print(SqList L)//打印顺序表,方便测试
{
for(int i=0;i<L.length;i++)
{
printf("%4d",L.data[i]);
}
printf("\n");
}
bool EnList(SqList &L,int i,int e)//插入 在第i个位置前插入e
{
if(L.length == MaxSize)//判断表是否为满
{
return false;
}
if(i<1||i>L.length)//判断插入位置是否合法
{
return false;
}
for(int j=L.length-1;j>=i-1;j--)//为插入元素 腾位置
{
L.data[j+1]=L.data[j];
}
L.data[i-1]=e;
L.length++;
return true;
}
bool DeList(SqList &L,int i)//删除第i个位置的元素
{
if(L.length == 0)//表空无法删除
{
return false;
}
if(i<1||i>L.length)//判断删除位置是否合法
{
return false;
}
for(int j = i-1;j<L.length;j++)
{
L.data[j]=L.data[j+1];
}
L.length--;
return true;
}
bool UpdataList(SqList &L,int i,int e)//修改表中第i个位置的元素,赋值为e
{
if(L.length == 0)//表空无法修改
{
return false;
}
if(i<1||i>L.length)//判断修改位置是否合法
{
return false;
}
L.data[i-1]=e;
return true;
}
int LocateData(SqList L,int i)//查找第i个位置的元素并返回
{
if(L.length == 0)//表空无法查找
{
return false;
}
if(i<1||i>L.length)//判断查找位置是否合法
{
return false;
}
return L.data[i-1];
}
bool Location(SqList L,int e)//查找值e在表中的第几个位置 并返回
{
for(int i =0;i<L.length;i++)
{
if(L.data[i] == e)
{
printf("在表中的第%d位置\n",i+1);
return true;
}
}
if(i == L.length)
{
printf("表中无此元素\n");
return false;
}
}
int main()
{
SqList L;
InitSqList(L);
Print(L);
EnList(L,3,66);
Print(L);
DeList(L,6);
Print(L);
UpdataList(L,3,99);
Print(L);
int temp=LocateData(L,4);//接受LocateData的返回值
printf("temp= %d\n",temp);
Location(L,100);
return 0;
}

浙公网安备 33010602011771号