重庆seo网站运营,百度指数查询入口,企业模板网站vue,化妆品网站主页设计学习笔记#xff0c;仅供参考 1.头文件
2.初始化
3.增加值
4.根据下标取值
5.查找
6.插入
7.删除
8.动态增加数组的长度
9.所有代码
10.运行结果 1.头文件
//顺序表的实现——动态分配
#includestdio.h
#includestdlib.h
#define InitSize 10
type… 学习笔记仅供参考 1.头文件
2.初始化
3.增加值
4.根据下标取值
5.查找
6.插入
7.删除
8.动态增加数组的长度
9.所有代码
10.运行结果 1.头文件
//顺序表的实现——动态分配
#includestdio.h
#includestdlib.h
#define InitSize 10
typedef struct{int *data;int MaxSize;int length;
}SeqList;
2.初始化
//初始化一个顺序表
void InitList(SeqList L){//使用malloc函数申请一片连续的存储空间L.data (int*)malloc(InitSize*sizeof(int));L.length 0;L.MaxSize InitSize;
}
3.增加值
//增加值
void AddValue(SeqList L,int num){for (int i 0;inum;i){scanf(%d,L.data[i]);L.length;}
}
4.根据下标取值 判断所给的下标是否越界。 //根据下标取值
bool GetElem(SeqList L,int num,int e){if (num1 || numL.length) return false;e L.data[num-1];return true;
}
5.查找
//查找
int LocateElem(SeqList L,int y){for (int i 0;iL.length;i){if(L.data[i] y) return i1;}return 0;
}
6.插入 判断是否越界同时L.length为前置。 //插入
bool ListInsert(SeqList L,int k,int kl){if (kl1 || klL.length1) return false;if (L.length L.MaxSize) return false;for(int i L.length-1;ikl-1;i--){L.data[i1] L.data[i];}L.data[kl-1] k;L.length;return true;
}
7.删除
//删除
bool ListDelet(SeqList L,int num){if (num1 || numL.length) return false;for(int i num;iL.length;i){L.data[i-1] L.data[i];}--L.length;return true;
}
8.动态增加数组的长度
//动态增加数组的长度
void IncreaseSize(SeqList L,int len){int *p L.data;L.data (int*)malloc((L.MaxSizelen)*sizeof(int));for(int i 0;iL.length;i){L.data[i] p[i];}L.MaxSize L.MaxSizelen;free(p);
}
9.所有代码
//顺序表的实现——动态分配
#includestdio.h
#includestdlib.h
#define InitSize 10
typedef struct{int *data;int MaxSize;int length;
}SeqList;
//初始化一个顺序表
void InitList(SeqList L){//使用malloc函数申请一片连续的存储空间L.data (int*)malloc(InitSize*sizeof(int));L.length 0;L.MaxSize InitSize;
}//增加值
void AddValue(SeqList L,int num){for (int i 0;inum;i){scanf(%d,L.data[i]);L.length;}
} //根据下标取值
bool GetElem(SeqList L,int num,int e){if (num1 || numL.length) return false;e L.data[num-1];return true;
} //查找
int LocateElem(SeqList L,int y){for (int i 0;iL.length;i){if(L.data[i] y) return i1;}return 0;
} //插入
bool ListInsert(SeqList L,int k,int kl){if (kl1 || klL.length1) return false;if (L.length L.MaxSize) return false;for(int i L.length-1;ikl-1;i--){L.data[i1] L.data[i];}L.data[kl-1] k;L.length;return true;
} //删除
bool ListDelet(SeqList L,int num){if (num1 || numL.length) return false;for(int i num;iL.length;i){L.data[i-1] L.data[i];}--L.length;return true;
} //动态增加数组的长度
void IncreaseSize(SeqList L,int len){int *p L.data;L.data (int*)malloc((L.MaxSizelen)*sizeof(int));for(int i 0;iL.length;i){L.data[i] p[i];}L.MaxSize L.MaxSizelen;free(p);
} int main(){SeqList L;int n,x;printf(请输入你要增加几条数据:);InitList(L);scanf(%d,n); //增加值 AddValue(L,n);printf(当前的数据为) ;for(int i 0;iL.length;i){printf(%d ,L.data[i]);}printf(\n);printf(当前顺序表的长度为%d\n,L.length); //根据下标找值 int e;printf(请输入你要取第几个值:);scanf(%d,x); if (GetElem(L,x,e)) printf(找到的第%d个值为%d\n,x,e);else printf(没有找到\n);//查找int y;printf(请输入你要查找的值:);scanf(%d,y); if (LocateElem(L,y)) printf(%d在第%d位置上\n,y,LocateElem(L,y));else printf(没有找到\n);//插入int k,kl;printf(请输入你要插入的值以及插入的位置:);scanf(%d %d,k,kl); if(ListInsert(L,k,kl)) printf(现在第%d位置上的值变为了%d\n,kl,k);else printf(插入失败\n);printf(当前的数据为) ;for(int i 0;iL.length;i){printf(%d ,L.data[i]);}printf(\n);printf(当前顺序表的长度为%d\n,L.length); //删除int sc;printf(请输入你要删除第几个数据:);scanf(%d,sc); if(ListDelet(L,sc)) printf(删除成功\n);else printf(删除失败\n);printf(当前的数据为) ;for(int i 0;iL.length;i){printf(%d ,L.data[i]);}printf(\n);printf(当前顺序表的长度为%d\n,L.length); //增加顺序表长度 int l;printf(请输入你要增加的长度:);scanf(%d,l);IncreaseSize(L,l);printf(当前顺序表的最大长度为%d\n,L.MaxSize); return 0;
}
10.运行结果