- 动态顺序表的创建
- 静态顺序表的创建
- 静态顺序表的插入
- 静态顺序表的删除
- 静态顺序表的查找
- 1. 按位查找
- 2. 按值查找
#include#include #define InitSize 10 typedef struct { int *data; int MaxSize; //最大容量 int length; //当前长度 }SeqList; // 初始化顺序表 void InitList(SeqList &L) { //用malloc申请一片连续的存储空间 //int的大小乘以个数等于malloc申请的总空间大小,返回的指针强转化为int型,再赋给data指针 L.data = (int *)malloc(sizeof(int)*InitSize); //因为这是初始化列表,并没有数据,所以要使有用数据长度为0 L.length = 0; L.MaxSize = InitSize; // 根据最大长度进行填充 for (int i = 0; i < L.MaxSize; i++) { L.data[i] = i; //添加数据后要使用自增一,确定当前顺序表的数据长度 L.length++; } } // 增加动态数组的长度 void IncreaseSize(SeqList &L,int len){ int *p = L.data; // 申请一片新的内存地址 L.data = (int *)malloc((L.MaxSize+len)*(sizeof(int))); // 将数据复制到新区域 for(int i=0;i 运行结果如下:
静态顺序表的创建
#include静态顺序表的插入#define MaxSize 10 typedef struct{ int data[MaxSize]; // ElemType是一个抽象的数据类型,可以是int float等数据类型中的任意一种 int length; }SqList; int main(){ SqList L; return 0; } #include静态顺序表的删除#define MaxSize 10 typedef struct{ int data[MaxSize]; // ElemType是一个抽象的数据类型,可以是int str float中的任意一种 int length; }SqList; // 给静态表的数据赋值 void InitList(SqList &L) { L.length = 5; for (int i = 0; i < L.length; i++) { L.data[i] = i; } } // 定义输出函数 void printList(SqList &L) { for (int i = 0; i < L.length; i++) { printf("%dn",L.data[i]); } } bool ListInsert(SqList &L,int i,int e){ // 可以在L.length位置上 if(i<1||i>L.length+1){ printf("插入位置不合法n"); return false; }; // 内存空间已满,不能插入 if(L.length>=MaxSize){ printf("内存空间已满,不能插入n"); return false; }; for(int j=L.length;j>=i;j--){ L.data[j] = L.data[j-1]; } L.data[i-1] = e; L.length++; return true; } int main(){ bool flag; SqList L; InitList(L); printList(L); flag = ListInsert(L,3,3); printf("插入元素后····n"); if (flag){ printList(L); }; return 0; } #include#define MaxSize 10 typedef struct{ int data[MaxSize]; // ElemType是一个抽象的数据类型,可以是int str float中的任意一种 int length; }SqList; // 给静态表的数据赋值 void InitList(SqList &L) { L.length = 5; for (int i = 0; i < L.length; i++) { L.data[i] = i; } } // 定义输出函数 void printList(SqList &L) { for (int i = 0; i < L.length; i++) { printf("%dn",L.data[i]); } } // 核心代码 删除操作 bool ListInsert(SqList &L,int i,int e){ if(i<1||i>L.length){ printf("删除位置不合法n"); return false; }; for(int j=i;j 静态顺序表的查找 1. 按位查找 #include2. 按值查找#define MaxSize 10 typedef struct{ int data[MaxSize]; // ElemType是一个抽象的数据类型,可以是int str float中的任意一种 int length; }SqList; // 给静态表的数据赋值 void InitList(SqList &L) { a L.length = 5; for (int i = 0; i < L.length; i++) { L.data[i] = i; } } // 定义输出函数 void printList(SqList &L) { for (int i = 0; i < L.length; i++) { printf("%dn",L.data[i]); } } int GetElem(SqList L,int i){ // 可以在L.length位置上 if(i<1||i>L.length+1){ printf("插入位置不合法n"); return 0; }; // 内存空间已满,不能插入 if(L.length>=MaxSize){ printf("内存空间已满,不能插入n"); return 0; }; return L.data[i-1]; } int main(){ int flag,nmap; SqList L; InitList(L); printList(L); printf("请输入要查找顺序表的位置:n"); scanf("%d",&nmap); flag = GetElem(L,nmap); printf("%d位置上的值是%dn",nmap,flag); return 0; } #include#define MaxSize 10 typedef struct{ int data[MaxSize]; // ElemType是一个抽象的数据类型,可以是int str float中的任意一种 int length; }SqList; // 给静态表的数据赋值 void InitList(SqList &L) { L.length = 5; for (int i = 0; i < L.length; i++) { L.data[i] = i; } } // 定义输出函数 void printList(SqList &L) { for (int i = 0; i < L.length; i++) { printf("%dn",L.data[i]); } } int LocateElem(SqList L,int e){ for (int i=0;i



