如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学2.1线性表的逻辑结构例2-3一个(yīɡè)学校的学生健康情况登记表如下图所示。2.1线性表的逻辑结构一个线性表(linear_list)是n(n≥0)个具有相同属性的数据元素的有限(yǒuxiàn)序列,其中各元素有着依次相邻的逻辑关系。72.2线性表的顺序存储结构(1)定义用一组地址连续的存储单元(cúnchǔdānyuán)依次存储线性表中的各个数据元素,称为线性表的顺序存储。1(2)特点只要确定了存储线性表的起始位置,线性表中任一数据(shùjù)元素都可以随机存取,所以线性表的顺序存储结构是一种随机存取的存储结构。顺序存储结构的特点是:逻辑上相邻的数据(shùjù)元素在物理存储上(在存储器中)也相邻。(3)线性表的顺序存储结构可以使用一维数组来表示线性表的顺序存储结构。线性表的顺序存储结构的C语言(yǔyán)描述如下。(1)算法(suànfǎ)思想(2)算法(suànfǎ)编写(1)算法思想在一般情况下,在第i(1≤i≤n)个元素之前(zhīqián)插入一个元素时,需要将第i至第n(共n-i+1)个元素向后移动一个位置。a1#defineOK1#defineERROR0IntInsList(SeqList*L,inti,ElemTypee)/*在顺序线性表L中第i个位置插入(chārù)新的元素e。*//*i的合法值为1≤i≤L->last+2*/if(L->last>=MAXSIZE-1){printf(“表已满无法(wúfǎ)插入”);return(ERROR);}(3)算法分析算法InsList的基本操作是数据元素后移操作。执行元素后移的次数是n–i+1。可以看到:移动元素的次数不仅和线性表的长度n有关,而且还与插入元素的位置i有关。当i=n+1时,无须(wúxū)移动元素;当i=1时,则元素后移执行n次。也就是说,该算法在最好的情况下时间复杂度是O(1),在最坏的情况下时间复杂度是O(n)。(1)算法思想在一般情况下,删除第i个元素时,需要(xūyào)将n至第i+1个(共n-i)元素向前移动一个位置。a1IntDelList(SeqList*L,inti,ElemType*e)/*在顺序线性表L中删除(shānchú)第i个元素,并用e返回其值i的合法值为1≤i≤L->last+1*/L->last--;/*表长减1*/returnOK;}/*DelList*/(3)算法分析算法DelList的基本操作是数据元素前移操作。执行元素前移的次数是n-i。可以看到:移动元素的次数不仅和线性表的长度n有关(yǒuguān),而且还与删除元素的位置i有关(yǒuguān)。当i=n时,无须移动元素;当i=1时,则元素前移执行n-1次。也就是说,该算法在最好的情况下时间复杂度是O(1),在最坏的情况下时间复杂度是O(n)。进一步分析算法的平均性能:算法DelList的时间复杂度为O(n)。线性表顺序存储结构的最大特点就是逻辑上相邻的两个元素(yuánsù)在物理位置上也相邻。这一特点使顺序表具有十分鲜明的优点和缺点。(2)顺序存储结构(jiégòu)的缺点27线性表的链式存储(cúnchǔ)表示线性表链式存储结构的特点是用一组任意的存储单元存储该线性表中的各个数据(shùjù)元素(存储单元可以连续,也可以不连续)。(1)结点一个数据元素ai的存储结构由两部分信息组成,称之为结点(node)。结点包括两个域:数据域(data),存储数据元素信息;指针域(next),存储直接后继元素地址(没有(méiyǒu)后继元素时指针为“空”(NULL))。指针域中存储的信息称为指针或链。(2)线性表的单链表存储(cúnchǔ)结构例:线性表如下(rúxià):(ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG)33(3)头结点(jiédiǎn)和头指针头指针(zhǐzhēn)建立线性表的链式存储结构的过程是一个动态生成单链表的过程,即从“空表”的初始状态起,依次建立各元素结点,并逐个插入到单链表中。(1)算法(suànfǎ)思想38s->data=c;s->next=L->next;/*将新结点插入到单链表的头*/L->next=s;/*修改(xiūgǎi)单链表头结点的指针域*/}/*while结束*/elseflag=0/*若输入字符为$,置flag=0*/}}/*CreatFromTail*/(1)算法思想在单链表中,任何两个元素(yuánsù)存储位置间没有固定的联系,每一个元素(yuánsù)的存储位置都包含在其直接前驱结点的next之中。LNode*Get(LinkListL,inti)/*L是带头结点单链表