数据结构——顺序表中基本操作的实现

本文深入探讨数据结构中的顺序表,详细解析插入、删除、查找等基本操作的原理及其实现过程,帮助理解顺序表的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
顺序表中基本操作的实现
2018.04.10
*/
#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;

//函数结构状态代码
#define OK 1
#define ERROR 0
#define OVERFLOW -2
//Status是函数返回值的类型,其值是函数结果状态代码
typedef int Status;

#define MAXSIZE 10000
typedef struct{
    char no[20];    //图书IBSN
    char name[50];  //图书名字
    double price;   //图书价格
}Book;

typedef struct{
    Book *elem;     //存储空间的基地址
    int length;     //图书表中当前图书的个数
}SqList;            //图书表的顺序存储结构类型为SqList

//-----------------------------------------------------------------------------------------
//顺序表的初始化
//算法步骤:
//1.为顺序表动态分配一个预定义大小的数组空间,使elem指向这段空间的基地址;
//2.将表长设置为0

Status InitList(SqList &L){
    //构造一个空的顺序表L
    L.elem=new Book[MAXSIZE];   //为顺序表分配一个大小为MAXSIZE的数组空间
    if(!L.elem)                 //存储分配失败则退出
        exit(OVERFLOW);
    L.length=0;                 //空表长度为0
    return OK;
}

//-----------------------------------------------------------------------------------------
//取值(根据指定位置序号i,获取顺序表中的第i个元素的值)
//算法步骤:
//1.判断i是否合理(1<=i<=L.L.length);
//2.若i合理,则将第i个元素L.elem[i-1]赋值给参数e,通过e返回第i个数据元素的传值;
Status GetElem(SqList L,int i,Book &e){
    if(i<1||i>L.length)
        return ERROR;
    e=L.elem[i-1];
    return OK;
}

//-----------------------------------------------------------------------------------------
//查找(根据指定的元素值e,查找 顺序表中第1个与e相等的元素;若成功则返回该元素在表中的位置序号;若失败,则返回0)
//算法步骤:
//1.从第一个元素起,依次和e相比较,若找到与e相等的元素L.elem[i],则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值