1) 线性表(线性存储结构) 线性表又称线性存储结构,是最简单的一种存储结构,专门用来存储逻辑关系为“一对一”的数据。 在一个数据集中,如果每个数据的左侧都有且仅有一个数据和它有关系,数据的右侧也有且仅有一个数据和它有关系,那么这些数据之间就是“一对一“的逻辑关系。 举个简单的例子: 图"一对...
/*在L中第i个位置之前插入新的数据元素e,L的长度加1*/StatusListInsert(SqList*L,int i,ElemType e){int k;if(L->length==MAXSIZE)/*顺序线性表已满*/{returnERROR;}if(i<1||i>L->length+1)/*i不在范围内*/{returnERROR;}if(i<=L->length)/*插入位置不在表尾*/{for(k=L->length-1;k...
ElemType data[MAXSIZE];intlength;//线性表当前长度}SqList; 数组的长度一般初始化后不变,而线性表的当前长度是线性表中元素的个数,是会变化的。 注意:数组地址计算从0开始,线性表从1开始的。 地址计算方法: 线性表中第i+1个数据元素和第i个数据元素的存储位置的关系是:LOC(ai+1)=LOC(ai)+c 进一步得:...
一、线性表的基本概念 线性表是由n(n≥0)个数据元素(结点)a1,a2,a3,……an组成的有限序列;数据元素的个数n定义为表的长度。当n=0时,称为空表。 将非空的线性表(n>0)记作:L=(a1,a2,a3,……,an) a1:起始结点(没有直接前驱) an:终端结点(没有直接后继)。
一、线性表的定义 线性表:零个或多个数据元素的有限序列。 线性表、包括顺序表和链表 顺序表(其实就是数组)里面元素的地址是连续的, 链表里面节点的地址不是连续的,是通过指针连起来的。 二、线性表的抽象数据类型 线性表的抽象数据类型定义如下: ...
它构成一个线性表,任何一种逻辑结构都可以使用顺序存储和链式存储来实现,使用顺序存储时,会在内存中分配连续的空间来存储数据元素,在程序中经常使用数组来实现。 但很多时候无法知道预先分配多大的空间合适,如果数据量较大时,内存中不存在那么大的连续空间,所以会导致内存分配失败,此时就可以使用链式存储来实现。 链式...
队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。简介 在队列这种数据结构中,最先插入在元素将是最先被删除;反之最后插入的元素...
顺序表基本运算算法 (1)初始化线性表InitList(&L) 构造一个空的线性表L。 void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的顺序表空间 L->length=0; } (2)销毁线性表DestroyList(&L) 释放线性表L占用的内存空间。
1. 线性结构(线性表的逻辑结构)的定义 定义:把所有的结点用一根直线穿起来 详细定义:线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,n=0是一个空表。 用L表示线性表:L=(a1,a2,…,ai,ai+1,…,an)。a1是唯一的第一个数据元素,又称表头元素;an是唯一的最后一个元素,又叫表尾元...