#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;ilength;i++) printf("%c ",L->data[i]); printf("\n"); }

//获取顺序表中第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 (ilength && L->data[i]!=e) i++; if (i>=L->length) return 0; else return i+1; }

//在顺序表的第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;jlength-1;j++) //将data[i]之后的元素前移一个位置 L->data[j]=L->data[j+1]; L->length--; //顺序表长度减1 return true;

#include stdioh 顺序表基本运算算法#include malloch#define MaxSize 50typedef char ElemType; typedef struct 	ElemType dataMaxSize;		存放顺序表元素 	int length;					存放顺序表的长度 SqList;						顺序表的类型void CreateList

原文地址: https://www.cveoy.top/t/topic/g99I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录