数据结构第一次上机

1. 实验内容

建立一有序的顺序表并实现线性表的基本操作(初始化、插入、删除、查找等)。

​
#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;
}
​
posted @ 2022-10-08 08:56  骆宾王  阅读(39)  评论(0)    收藏  举报