顺序表的实现(动态分配内存)(含静态分配)
2022/7/5 5:20:37
本文主要是介绍顺序表的实现(动态分配内存)(含静态分配),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <stdbool.h> 4 //#define MaxSize 100 5 /*静态分配*/ 6 /*typedef struct{ 7 int data[MaxSize]; 8 int length; 9 }Sqlist; 10 //初始化 11 bool InitList(Sqlist *L){ 12 L->length=0; 13 return true; 14 }*/ 15 /*动态分配*/ 16 #define InitSize 100 17 typedef struct{ 18 int *data; 19 int MaxSize; 20 int length; 21 }Sqlist; 22 //初始化 23 bool InitList(Sqlist *L){ 24 L->data=(int*)malloc(sizeof(int)*InitSize); 25 if(!L->data) return false; 26 L->MaxSize=InitSize; 27 L->length=0; 28 return true; 29 } 30 //插入 31 bool ListInsert(Sqlist *L,int i,int element){ 32 int j; 33 if(i<1 || i>L->length+1) 34 return false; 35 if(L->length>=L->MaxSize) 36 L->data=(int*)realloc(L->data,sizeof(int)*(InitSize+100)); 37 for(j=L->length;j>=i;j--){ 38 L->data[j]=L->data[j-1]; 39 } 40 L->data[i-1]=element; 41 L->length++; 42 return true; 43 } 44 //删除 45 bool DelList(Sqlist *L,int i,int *element){ 46 int j; 47 if(i<1 || i>L->length) 48 return false; 49 element=L->data[i-1]; 50 for(j=i;j<=L->length;j++){ 51 L->data[j-1]=L->data[j]; 52 } 53 L->length--; 54 return true; 55 } 56 //查找 57 int LocateElem(Sqlist L,int e){ 58 int i; 59 for(i=0;i<L.length;i++){ 60 if(L.data[i]==e) 61 return i+1; 62 } 63 return 0; 64 } 65 //遍历 66 int travel(Sqlist L){ 67 int i; 68 for(i=0;i<L.length;i++){ 69 printf("%d",L.data[i]); 70 } 71 return 0; 72 } 73 int main(){ 74 int *e; 75 Sqlist L; 76 InitList(&L); 77 ListInsert(&L,1,1); 78 ListInsert(&L,2,1); 79 ListInsert(&L,3,1); 80 DelList(&L,1,&e); 81 ListInsert(&L,3,8); 82 travel(L); 83 return 0; 84 }
这篇关于顺序表的实现(动态分配内存)(含静态分配)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南