数据对象集:线性表是N(>=0)个元素构成的有序序列,a1,a2,a3...a(N-1),aN,a(N+1) 线性表上的基本操作有: ⑴ 线性表初始化:Init_List(L) 初始条件:表L不存在操作结果:构造一个空的线性表 ⑵ 求线性表的长度:Length_List(L) 初始条件:表L存在 操作结果:返回线性表中的所含元素的个数 ⑶ 取表元...
int listsize; //结构体最大长度 } Sqlist; //结构体类型名 //各项操作 void Show_Help() { printf("1---初始化线性表\n"); printf("2---销毁线性表\n"); printf("3---清空线性表\n"); printf("4---判断线性表是否为空\n"); printf("5---求线性表长度\n"); printf("6---获取线性...
}//初始化线性表voidInitList(SqList*& L){ L = (SqList*)malloc(sizeof(SqList)); L->length =0;//置空线性表的长度为0}voidDestroyList(SqList*& L){free(L);//释放L所指的顺序表空间}boolListEmpty(SqList* L){return(L->length ==0); }intListLength(SqList* L){return(L->length); ...
1)InitList(&L) 初始化表,构造一个空表。 2)DestroyList(&L) 销毁表,并释放L所占空间。 3)ClearList(&L) 将L置空。 4)ListEmpty(L) 判断L是否为空,空返true。 5)ListLength(L) 求表长,返回线性表的长度。 6)GetElem(L,i,&e) 按位查找,用e返回L中第i个位置的元素的值。 7)LocateElem(L,e...
操作结果:若线性L为空,则返回值1;否则返回值0。 LocationList(L,x):查找值为x结点位置。 初始条件:线性表L存在,已知数据元素x, 操作结果:若在L中找到第一个和x值相匹配的数据元素,则返回它在L中的位置;否则返回-1。 LengthList(L):求线性表L的表长。
L.length=O; // 空表长度为0 return OK; } 1. 2. 3. 4. 5. 6. 7. 动态分配线性表的存储区域可以更有效地利用系统的资源 , 当不需要该线性表时 , 可以使用销毁操作及时释放占用的存储空间。 顺序表的取值 ① 判断指定的位置序号 i 值是否合理 (I ≤ i ≤ L.length), 若不合理,则返回ERROR。
3,求线性表长度运算 不同于顺序表,在单链表中没有直接保存长度信息,需要通过扫描方式求长度。对应算法如下: int GetLength(SLinkNode *L){ int i=0; SLinkNode *p=L->next; //p指向头结点,i置为0 while(p!=NULL){ i++; p=p->next; //p移到下一个结点,i++ ...
//获取线性表的长度StatusListLength_L(LinkListL,intcount){//L为带头结点的单链表的头指针,count为计数器LinkListp=L->next;//定义p为单链表L的指针域while(p){p=p->next;count++;}returncount;} 获取线性表长度的核心思路是遍历单链表,定义LinkList类型的变量p,将单链表的首元结点赋值给p。在该函数中...
int length; /* 当前长度 */ int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */ SqList; /* bo2-1.c 顺序表示的线性表(存储结构由c2-1.h定义)的基本操作(12个) */ Status InitList(SqList *L) /* 算法2.3 */ /* 操作结果:构造一个空的顺序线性表 */ ...
在任意时刻,线性表的长度应该小于等于数组的长度。 地址计算方法 线性表当前长度 C语言中数组从0开始第一个下标,线性表的第i个元素是要存储在数组下标i-1的位置,即数据元素的序号和存放它的数组下标之间的对应关系。 用数组存储顺序表意味着要分配固定长度的数组空间,由于线性表中可以进行插入和删除操作,因此分配的...