#include stdioh 顺序表基本运算算法#include malloch#define MaxSize 50typedef char ElemType; typedef struct ElemType dataMaxSize; 存放顺序表元素 int length; 存放顺序表的长度 SqList; 顺序表的类型void CreateList
#include <stdio.h> //头文件 #include <malloc.h> #define MaxSize 50 //定义最大长度为50 typedef char ElemType; //定义元素类型为字符类型 typedef struct { ElemType data[MaxSize]; //存放顺序表元素 int length; //存放顺序表的长度 } SqList; //顺序表的类型
//建立顺序表 void CreateList(SqList *&L,ElemType a[],int n) { L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 for (int i=0;i<n;i++) L->data[i]=a[i]; L->length=n; }
//初始化顺序表 void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间 L->length=0; }
//销毁顺序表 void DestroyList(SqList *&L) { free(L); //释放存放线性表的空间 }
//判断顺序表是否为空 bool ListEmpty(SqList *L) { return(L->length==0); }
//获取顺序表的长度 int ListLength(SqList *L) { return(L->length); }
//遍历顺序表并输出
void DispList(SqList *L)
{
for (int i=0;i
//获取顺序表中第i个元素的值 bool GetElem(SqList *L,int i,ElemType &e) { if (i<1 || i>L->length) return false; e=L->data[i-1]; return true; }
//查找元素位置
int LocateElem(SqList *L, ElemType e)
{
int i=0;
while (i
//在顺序表的第i个位置插入元素e bool ListInsert(SqList *&L,int i,ElemType e) { int j; if (i<1 || i>L->length+1 || L->length==MaxSize) return false; i--; //将顺序表位序转化为elem下标 for (j=L->length;j>i;j--) //将data[i]及后面元素后移一个位置 L->data[j]=L->data[j-1]; L->data[i]=e; L->length++; //顺序表长度增1 return true; }
//删除顺序表中第i个位置的元素
bool ListDelete(SqList *&L,int i,ElemType &e)
{
int j;
if (i<1 || i>L->length)
return false;
i--; //将顺序表位序转化为elem下标
e=L->data[i];
for (j=i;j
原文地址: https://www.cveoy.top/t/topic/g99I 著作权归作者所有。请勿转载和采集!