/*前面已经说过结构体中的n是代表已经放入线性表中元素的个数,所以判断线性表是否为空就是判断n的值是否为空*///书中代码如下intisNullList_seq(PSeqList palist){return(palist -> n ==0); } //方法声明为intlocate_seq(PSeqList palist,DataType x);//在palist所指的顺序表中寻找第一个值为x的...
("1:判断线性表是否为空\n"); printf("2:查询线性表的长度\n"); printf("3:查找线性表的第i个元素\n"); printf("4:查找值为x的元素所在的位置\n"); printf("5:数据元素x的前驱为\n"); printf("6:数据元素x的后继为\n"); printf("7:在线性表第i个位置前插入新元素x\n"); printf("8:...
在判断线性表是否为空时,首先判断头结点是否存在,当头结点存在时看头结点的指针域是否为空,当指针域为空时说明首元结点不存在,单链表是空表;当指针域不为空时说明存在首元结点,单链表不是空表。如果头结点不存在的话说明单链表不存在,无法判断是否为空表。 7.获取线性表的长度 //获取线性表的长度StatusListLe...
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 术语: 入队push 出队pop 返回队列大小 size 判断是否为空 isEmpty 队头元素 front 队尾元素 back 2、队列的顺序存储 队列也是一种特殊的线性表;可以用线性表顺序存储来模拟队列。 1 接口 初始化队列 init 入队push 出队pop 返回...
voidInitList(SqList*&L){L=(SqList*)malloc(sizeof(SqList));L->length=0;//置空线性表的长度为0} (4)销毁线性表 voidDestroyList(SqList*&L){free(L);//释放L所指的顺序表空间} (5)判断是否为空 boolListEmpty(SqList*L){return(L->length==0);} ...
/*定义线性表类型*/ typedefstruct{ ElemType data[MAXSIZE]; intlength; }sqList; 结构较简单,一个数组用于存放元素信息 和一个长度用于下面操作 代码实现的功能包括线性表的初始化,判断是否为空、清空、增加元素、删除元素、合并线性表等操作。 1 2
IsEmptyList(L):判断线性表是否为空。 初始条件:线性表L存在, 操作结果:若线性L为空,则返回值1;否则返回值0。 LocationList(L,x):查找值为x结点位置。 初始条件:线性表L存在,已知数据元素x, 操作结果:若在L中找到第一个和x值相匹配的数据元素,则返回它在L中的位置;否则返回-1。
线性表的顺序存储结构删除元素 /*删除元素*/StatusDeleteListElem(List*list,int pos,ElemType*ele){int i;//判断线性表是否为空if(list->length==0){returnERROR;}//判断删除位置是否在有效,且删除位置是否有效。if(pos<1||pos>list->length){returnERROR;}//获取要删除元素*ele=list->data[pos-1];//...
ClearList(&L) &L你可以想象成一个容器(数组) :清空线性表 ListEmpty(L) L你可以想象成一个容器(数组) :线性表是否为空 ListLength(L) L你可以想象成一个容器(数组) :线性表中元素个数 GetElem(L, i, &e)L你可以想象成一个容器(数组) i代表索引 &e代表获取的元素是啥? :获取线性表中指定的元素 ...
L.length=O; // 空表长度为0 return OK; } 1. 2. 3. 4. 5. 6. 7. 动态分配线性表的存储区域可以更有效地利用系统的资源 , 当不需要该线性表时 , 可以使用销毁操作及时释放占用的存储空间。 顺序表的取值 ① 判断指定的位置序号 i 值是否合理 (I ≤ i ≤ L.length), 若不合理,则返回ERROR。