1.1顺序表基本操作的设计与实现

  实现顺序表的基本操作,包括顺序表的建立,查找,求长度,查找前驱,插入,删除,输出等函数

#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

#define OK 1
#define ERROR 0
#define OVERFLOW -1

#define List_INIT_SPACE 100    //存储空间初始分配量
#define List_INC_SPACE 10      //存储空间分配增量

typedef int ElemType;
typedef struct
{
	ElemType *elem;              //存储空间基址
	int length;                  //当前长度
	int listsize;				//当前分配的存储容量(以sizeof(ElemType)为单位)
}Sq_List;

/****---------------------------------------------------------------------------------****/
//函数名:   Sq_ListInit(Sq_List &l)
//参数:     (传入)Sq_List L,顺序表结构体L,存储线性表相关信息(&相当于传入L的地址)
//返回值:    int型,返回1表示创建成功,0表示失败
//功能:      初始化一个空顺序表
/*****--------------------------------------------------------------------------------****/

int Sq_ListInit(Sq_List &L)
{
	//在内存中分配空间
	L.elem = (ElemType*)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序是一种常见的数据结构,它的基本操作有初始化、获取元素、插入元素、删除元素和查找元素。在C++中,可以使用数组来实现顺序。 首先,我们需要定义一个顺序的结构体,其中包含数组和长度变量。 ```cpp const int MAX_SIZE = 100; // 假设顺序的最大容量为100 struct ArrayList { int data[MAX_SIZE]; // 用于存储元素的数组 int length; // 当前元素个数 }; ``` 接下来是初始化操作,该操作可以将顺序的长度设置为0。 ```cpp void init(ArrayList& list) { list.length = 0; } ``` 然后是获取元素的操作,我们需要传入顺序和待获取元素的索引,返回对应索引位置的元素。 ```cpp int get(ArrayList list, int index) { if (index < 0 || index >= list.length) { // 索引越界,返回一个非法值 return -1; } return list.data[index]; } ``` 插入元素的操作需要传入顺序、待插入的元素和插入位置的索引。该操作会在指定位置插入元素,并将原来位置及之后的元素向后移动一位。 ```cpp void insert(ArrayList& list, int element, int index) { if (index < 0 || index > list.length || list.length >= MAX_SIZE) { // 索引越界或顺序已满,插入失败 return; } // 后移元素 for (int i = list.length - 1; i >= index; i--) { list.data[i + 1] = list.data[i]; } // 在指定位置插入元素 list.data[index] = element; list.length++; } ``` 删除元素的操作需要传入顺序和待删除元素的索引。该操作会将指定位置的元素删除,并将之后的元素向前移动一位。 ```cpp void remove(ArrayList& list, int index) { if (index < 0 || index >= list.length) { // 索引越界,删除失败 return; } // 前移元素 for (int i = index + 1; i < list.length; i++) { list.data[i - 1] = list.data[i]; } list.length--; } ``` 最后是查找元素的操作,该操作需要传入顺序和待查找的元素值,返回元素在顺序中的索引。 ```cpp int find(ArrayList list, int element) { for (int i = 0; i < list.length; i++) { if (list.data[i] == element) { return i; } } return -1; // 未找到元素 } ``` 这些基本操作实现可以帮助我们对顺序进行各种操作,包括初始化、获取元素、插入元素、删除元素和查找元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值