摘要: 双向链表的操作 search(item) 思路:在查找方面,双向链表跟单向链表并没有什么区别,一样的方法,遍历判断是否相等,不相等移动到下一个节点 class DLinkList(object): def __init__(self): self._head=None def search(self 阅读全文
posted @ 2020-05-14 17:18 Roronoa-Zoro 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 双向链表的操作 insert(pos,item) 特定位置pos添加元素item 思路:1、当pos<=0的时候,就是头部添加元素,这里用了封装的类,之前写过 url:https://www.cnblogs.com/cong3Z/p/12889535.html 2、当pos超过了当前链表的长度,认为 阅读全文
posted @ 2020-05-14 17:09 Roronoa-Zoro 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 双向链表的操作 append(item) 思路:1、当链表为空,直接让self.__head=node即可,因为node前面后面都没有节点 2、当链表不为空,进入循环,找到尾节点,循环条件为cur !=None ,不再进入时,cur指向尾节点,这时候,让cur.next=node及node.prev 阅读全文
posted @ 2020-05-14 16:43 Roronoa-Zoro 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 双向链表的操作 add(item)在头部添加一个新元素 思路:当链表为空,让self.__head=node即可 当链表不为空,要让链表中第一个节点向前指向新的节点self.__head.prev=node;此外,将新节点下一个指向原来的第一个节点,即node.next=self.__head 最后 阅读全文
posted @ 2020-05-14 16:26 Roronoa-Zoro 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 双向链表的操作 节点类的构造:这时候,一个节点存储三个信息:元素,指向下一个节点地址,指向上一个节点地址 is_empty()判断链表是否为空 length()计算链表长度 travel()遍历 这三种其实跟单向链表没有什么区别,当然可以把单向链表封装成类,减少重新写的麻烦 class Node(o 阅读全文
posted @ 2020-05-14 16:01 Roronoa-Zoro 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 单向循环链表的操作 remove(item) 删除元素 思路:1、当链表为空,直接返回即可 2、设置两个指针,一个指向当前节点,另一个指向前一个节点; 3、循环遍历,循环条件:cur.next != self.__head 4、进入循环,判断cur.item是否大于item 这时候分情况考虑,如果第 阅读全文
posted @ 2020-05-14 14:53 Roronoa-Zoro 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 单向循环链表的操作 search(item) 查找元素在不在链表当中 思路:1、当链表为空,直接返回False 2、循环遍历查找,循环条件:cur.next != self.__head 在循环里面进行判断 cur.item == item 3、当cur.next = self.__head的时候, 阅读全文
posted @ 2020-05-14 10:41 Roronoa-Zoro 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 单向循环链表的操作 add(item)在头部添加元素 思路:1、先将新节点添加到头部,让node.next=self.__head 以及让self.__head=node 2、进行遍历,循环条件: 最后一个节点现在指向第二个节点,即cur.next = node.next;找到最后一个节点之后,将c 阅读全文
posted @ 2020-05-14 10:27 Roronoa-Zoro 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 单向循环链表的操作 travel() 遍历链表中所有元素 思路:跟之前的单链表一样,循环输出即可;要注意的是最后一个节点时,此时cur.next指向头节点,而没有进入循环,而cur指向该节点,跳出循环后,单独把最后一个节点的元素打印出来就可以了(当链表中只有一个元素,也可以处理) 注意:同时也要考虑 阅读全文
posted @ 2020-05-14 10:01 Roronoa-Zoro 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 单向循环链表的操作 length()返回链表的长度 思路:当头节点为空的时候,直接返回0 其它情况下,先确定循环条件,之前单链表的cur != None这一条件不适用于此,因为最后一个节点会指向头节点,即此时是cur.next==self.__head 而cur==self.__head同样不可取, 阅读全文
posted @ 2020-05-14 09:49 Roronoa-Zoro 阅读(124) 评论(0) 推荐(0) 编辑