末尾附完整代码!!!
目录
一、什么是顺序表?
顺序表是线性表的一种,是指用一组地址连续的存储单元依次存储线性表的数据元素。其特点是,逻辑上相邻的数据元素,其物次序也是相邻的。所以顺序表具有随机存取的性质。
二、顺序表中基本操作的实现
顺序表中的基本操作有很多取值、赋值、查找、插入、删除、排序、销毁、重置等等。
1.预处理及定义顺序表类型:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 //设置顺序表的最大长度为100
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef char ElemType;
//定义顺序表类型
typedef struct
{
ElemType* elem;//此处为静态数组也可使用静态数组ElemType elem[MAXSIZE]代替
int length; //用于表示顺序表的长度
}SqList;
2.顺序表的初始化
//线性表的初始化
Status InitList(SqList &L)
{
//构造一个顺序表L
L.elem = new ElemType[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间
if (!L.elem) exit(OVERFLOW); //异常处理提高代码的健壮性
L.length = 0; //空表长度为0
return OK;
}
3.顺序表的赋值
void CreateSqList(SqList* L, int n) //n为需要创建顺序表的长度
{
int i = 0;
//异常处理:
if (n > MAXSIZE || n < 1)
{
printf("顺序表的长度非法");