在顺序表上查找第一个和 x 值相等的元素,若查找成功,返回它在顺序表中的位置 ,否则,返回0。这里的位置不是下标。 参数:顺序表的地址,查找的值 返回值:返回值为 x 在顺序表中第一次出现的位置,返回0则表示找不到 intsearch(SeqList* L, ElemType x) { inti =0; for(i =0; i < L->length; i++...
若已达上限,那么我们就需要先对顺序表进行扩容,然后才能增加数据。 voidSeqListCheckCapacity(SeqList*psl){assert(psl);if(psl->size==psl->capacity){intnewCapacity=psl->capacity==0?4:psl->capacity*2;SeqListDataType*tmp=(SeqListDataType*)realloc(psl->array,newCapacity*sizeof(SeqListDataType));i...
DATA ListData[MAXLEN+1]; //保存顺序表的结构数组,从下标1开始记录数据节点,下标0位置不使用 int ListLen; //顺序表已存节点数量 }SLType; void SLInit(SLType *SL) //初始化顺序表 { SL->ListLen=0; //初始化为空表,没有清空表,如表中有数据可被覆盖 } int SLLength(SLType *SL) //返回顺序...
returni;// 返回插入元素在表中的位置 } /* // (3)读取元素 // 读取顺序表中某一位置处的元素。读取位置必须在表的长度范围之内,即[1, n],n为当前的表长。 */ intGetVec(intVec*pVec,inti) { /*** 读取pVec指向的顺序表的第i个位置处的元素 ***/ // 1. 判断读取位置是否在表的长度范围内 ...
顺序表删除元素 从顺序表中删除指定元素,实现起来非常简单,只需找到目标元素,并将其后续所有元素整体前移 1 个位置即可。 后续元素整体前移一个位置,会直接将目标元素删除,可间接实现删除元素的目的。 例如,从{1,2,3,4,5}中删除元素 3 的过程如图 4 所示: ...
L->length = 0;//空表长度为0 L->listsize = LIST_INIT_SIZE;//初始存储容量 return OK; } 然后,我们可以实现顺序表插入和删除操作。 A.顺序表插入元素 A1、判断插入的位置是否合适,i的范围应该在[1,length+1]范围取值. A2、判断当前表长length是否大于或等于存储容量listsize,可能需要进行扩容处理。
顺序表可以说是数据结构的入门,本文将从代码的角度讲述一个简单动态顺序表的实现(顺序表的基本操作)。(声明,up主纯编程小白,写这篇文章仅当巩固知识,检验学习成果,嘿嘿,就是玩(●'◡'●) ) 一:预处理阶段 我们需引入两个头文件,定义顺序表的初始化长度,以及定义自己的bool类型(看个人喜好),第一行代码是为了...
/** * 数组实现顺序表 */ typedef int Status; //为数据类型声明别名,要加分号; typedef int ElemType; #define OK 1 //宏定义,不加分号; #define ERROR 0 #define MAXSIZE 10 #define INCREMENT 10 typedef struct ArrayList //顺序表三要素:元素基址、元素个数、表长 {...
Status InitList_Sq(SqList &L) //初始化顺序表 { L.elem=(Elemtype *)malloc(LIST_INIT_SIZE* sizeof(Elemtype)); L.length=0; L.listsize=LIST_INIT_SIZE; return 1; } void CreateList(SqList &L) //创建顺序表 { int i; printf("请输入你要创建的顺序表元素个数"); scanf("%d",&L.leng...