数据结构(一) 线性表
一、线性表
1、线性表的顺序表示和实现
2、线性表的链式表示和实现
线性链表
循环链表
双向链表
线性表
线性结构:线性结构中的元素除了第一个和最后一个元素,其它元素都有唯一的直接前驱和直接后继。
线性表的逻辑结构:由类型相同的数据元素组成的有限序列。
线性表的实现方法:顺序表和链表
顺序表
线性表的顺序存储结构特点:
(1) 用一组地址连续的存储单元一次存储线性表的元素;
(2) 用元素在存储器中的“物理位置相邻”表示线性表中数据之间的逻辑关系;
(3) 可直接随机存取任一个数据元素,所以线性表的顺序存储是一种随机存取的存储结构;
(4) 在进行插入或删除操作时需要移动大量的数据元素;
单链表
线性表的链式存储结构特点:
(1) 数据元素之间的逻辑关系由节点的后继指针表示,逻辑上相邻的两个元素不要求物理存储位置也相邻。
(2) 每个元素的存储位置由其直接前驱的后继指针所表示;
(3) 链式存储结构是非随机存取的存储结构,存取第i个元素必须从头指针出发进行查找;
(4) 线性表的链式存储结构中的尾节点的直接后继为空。
循环链表
循环链表的节点结构与单链表相同,与单链表不同的是在循环链表中表尾节点的next指针不为NULL,而是指向头节点。一个空循环链表中,有head->next==head。
循环链表的操作与线性链表的操作基本相同,只是将算法中循环条件改为tmpPtr是否等于头指针。
双向链表
双向列表的节点中有两个指针,分别指向前驱和后继,back是指向前驱的指针,next是指向后继的指针。