
第二章:线性表
文章平均质量分 76
kong_xz
这个作者很懒,什么都没留下…
展开
-
线性表的基本概念
一、 线性表的定义 线性表是具有相同特性的数据元素的一个有限序列。 该序列中所含元素的个数叫做线性表的长度,用n表示,n≥0。 当n=0时,表示线性表是一个空表,即表中不包含任何元素。设序列中第i(i表示逻辑位序)个元素为ai(1≤i≤n),线性表的一般表示为: (a1,a2,…ai,ai+1,…,an)其中a1为第一个元素,又称做表头元素,a2为第二个元素,an为最后一个元素,又称做表尾元素。 ...原创 2018-03-02 10:57:27 · 998 阅读 · 0 评论 -
顺序存储结构
一、线性表的顺序存储结构-顺序表顺序表:把线性表中的所有元素按照其逻辑顺序依次存储到从计算机存储器中指定存储位置开始的一块连续的存储空间中。 这样,线性表中第一个元素的存储位置就是指定的存储位置,第i+1个元素(1≤i≤n-1)的存储位置紧接在第i个元素的存储位置的后面。假定线性表的元素类型为ElemType,则每个元素所占用存储空间大小(即字节数)为sizeof(ElemType),整个线性表所...原创 2018-03-02 11:23:41 · 1670 阅读 · 0 评论 -
线性表的链式存储
一、线性表的链式存储—链表在链式存储中,每个存储节点不仅包含有所存元素本身的信息(称之为数据域),而且包含有元素之间逻辑关系的信息,即前驱节点包含有后继节点的地址信息,这称为指针域,这样可以通过前驱节点的指针域方便地找到后继节点的位置,提高数据查找速度。 若一个节点中的某个指针域不需要任何节点,则仅它的值为空,用常量NULL表示。在线性表的链式存储中,为了便于插入和删除运算的实现,每个链表带有一个...原创 2018-03-02 14:48:45 · 1245 阅读 · 0 评论 -
双链表 、循环链表
一、双链表 对于双链表,采用类似于单链表的类型定义,其DLinkList类型的定义如下: typedef struct DNode //声明双链表节点类型 { ElemType data; struct DNode *prior; //指向前驱节点 struct DNode *next; //指向后继节点 } DLinkList;1....原创 2018-03-02 15:31:00 · 486 阅读 · 0 评论 -
有序表
一、有序表的定义所谓有序表,是指这样的线性表,其中所有元素以递增或递减方式有序排列。为了简单,假设有序表元素是以递增方式排列。从中看到,有序表和线性表中元素之间的逻辑关系相同,其区别是运算实现的不同。若以顺序表、单链表存储有序表,会发现基本运算算法中只有ListInsert()算法与前面对应的运算有所差异,其余都是相同的。有序顺序表的ListInsert()算法如下:void ListInsert...原创 2018-03-03 10:25:05 · 19511 阅读 · 0 评论