隐藏页面特效

数据结构复习代码——线性表结构体定义,线性表动态内存分配的初始化以及元素插入

//-----线性表的动态分配顺序存储结构 #define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量 #define LISTINCREMENT 10 //线性表存储空间的分配增量 typedef struct { int *elem; //存储空间基地址 int length; //当前长度 int listsize; //当前分配的存储容量 }SqList; //线性表的初始化 int InitList_Sq(SqList &L){ //构造空的线性表L L.elem = (int*)malloc(LIST_INC_SIZE*sizeof(int)); //为该线性表分配内存空间 if(!L.elem) exit(-1); //存储分配失败 L.length = 0; //空线性表长度为0 L.listsize = LIST_INIT_SIZE; //初始存储容量 return 1; }//InitList_Sq //线性表在第i个位置之前插入新元素 int ListInsert_Sq(SqList &L,int i,int e) { //首先判断插入位置i的值是否合法 if(i<1||i>L.length+1) return -1; //i值非法 if(L.length>=L.listsize){ //当前存储空间已满,为该线性表分配新的内存空间 newbase = (int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) exit(-1); //该磁盘存储空间已满,无法为该线性表分配新的内存空间 //分配成功,将新分配的内存空间的首址赋值给该线性表的首址 L.elem = newbase; //增加存储容量 L.listsize += LISTINCREMENT; } q = &(L.elem[i-1]); //q为插入的位置 //将i元素之后的元素向后移 for(p = &(L.elem[L.length-1]);p>=q;--p) *(p+1) = *p; *q = e; //插入e ++L.length; //表长加一 return 1}

 


__EOF__

本文作者往心。
本文链接https://www.cnblogs.com/lx06/p/16389037.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   往心。  阅读(123)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2021-06-18 软件工程 课程总结
点击右上角即可分享
微信分享提示