摘要:
1、双向循环链表 双向链表是在单链表的每个结点中,再设置一个纸箱其前驱结点的指针域。双向链表可以有效的提高算法的时间性能,用空间换取时间。 typedef struct Node { ElemType data; struct Node* prior; //直接前驱指针 struct Node* n 阅读全文
摘要:
1、单循环链表 将单链表中终端结点的指针端由空指针改为指向头节点,形成一个环,这种头尾相接的单链表为单循环链表。 注意:空表的判断条件由head->next==null改变为head->next==head. 无论从链表的哪一个结点出发,都可以访问到所有的结点。对于单循环链表:使用尾指针,可以在O( 阅读全文
摘要:
快慢指针: 定义两个指针,一个快,一个慢,可以有多种用途。例如:快速找到位置长度单链表中的中间结点;对于循环链表中利用快慢指针也可以判断是否存在环。 快速找到位置长度单链表中的中间结点 1)使用一个指针,先索引一遍获取总长度,再取长度一半去循环获取到中间值;O(3L/2)。 2)使用两个指针,快指针 阅读全文
摘要:
1、线性表的链式存储结构 每个元素多用一个位置来存放指向下一个元素位置的指针,依次类推,可以找到所有的元素。链式存储中,除了要存储数据本身外,还要存储它的后继元素的存储地址(指针)。 数据域:存储数据信息的域; 指针域:存储直接后继位置的域。 这两部分信息组成数据元素称之为存储映像,节点Node。链 阅读全文