单链表(具体实现在上两篇博客)
1、单链表就是通过每个结点的指针指向下一个结点从而连接起来的结构,单链表示意图如下:
2、单链表的初始化:(构造函数部分)
3、单链表插入结点:通过指定的位置pos进行结点的插入(当pos为0的时候,头插;当pos为链表长度减1的时候,为尾插。)
4、单链表删除结点的过程:同结点的插入过程。
单循环链表
1、单循环链表与单链表有点相似的地方,就是通过结点的next域指向下一个结点,然后这样链接起来的。但是 惟一的不同就是:单链表的最后一个结点的next域指向NULL,而单循环链表的最后一个结点指向头结点,下面是单循环链表的示意图:
2、单循环链表的初始化:从上面的示意图可以知道,单循环链表的最后一个结点的next域指向头结点,那么当只有一个结点的时候就是头结点,也就是自己指向自己。
3、单循环链表插入结点:这个时候往链表中插入结点,因为链表已经是个环,所以直接让新插入节点的next域指向下一个结点就可以了,就算插入的是最后一个位置,让它指向下一个结点也符合条件,因为最后一个位置的下一个结点就是头结点。
4、单循环链表删除结点:
双向链表
1、双向链表是指链表中包含两个域(除数据域外),一个next域指向下一个结点,一个prior域指向上一个结点,这样的链表可以通过第一个结点找到最后一个结点,当然也可以通过最后一个结点找到第一个结点,因为它是双向的。双向链表示意图:
2、双向链表的初始化:由于链表的头结点不参与运算,所以头结点的prior域一直指向空。
3、双向链表插入结点:每插入一个结点,都要处理其next域和prior域,新建结点的下一个结点的prior域需要指向这个新建的结点,但是有可能这个新建的结点就已经是最有一个结点了。因此程序当中需要判断插入的结点是否为最后一个结点。
4、双向链表删除结点:
双向循环链表
1、结合单循环链表对双向循环链表就不难理解,其实就是双向链表构成了一个环,双向循环链表示意图:
2、双向循环链表初始化:next域和prior域都指向自身,这是因为prior域要指向上一个结点,next域要指向下一个结点,这个时候就只有一个头结点,所以都指向自身。
3、双向循环链表插入结点:同单循环链表插入结点类似。
4、双向循环链表删除结点:和单向循环链表删除结点类似。