//3.13 循环链表 //循环链表:我们用指向终端结点的尾指针来表示循环链表,此时查找开始结点和终端结点都很方便了 //终端结点用尾指针rear指示,这样我们查找终端结点是O(1),而开始结点,其实就是rear->next->next,其时间复杂也为O(1) //举个程序的例子,要将两个循环链表合并成一个表时,有了尾指针就非常简单了。 //3.14 双向链表 //双向链表是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。所以在双向链表中的结点都有两个指针域。 //一个指向直接后继,另一个指向前驱。 //线性表的双向链表存储结构 typedef struct DulNode { ElemType data; struct DulNode *prior; //直接前驱指针 struct DulNode *next; //直接后继指针 } DulNode, *DuLinkList;