后边试着加了几个删除的方法,指点一波,其中有一块不太确定,代码中写了
class Node(): def __init__(self, value=None, next=None): self.value = value self.next = next class Linklist(): def __init__(self): self.root = Node() self.size = 0 self.next = None def append(self,value): node = Node(value) if not self.next: self.root.next = node else: self.next.next = node self.size += 1 self.next = node def append_first(self,value): ''' 最初 root -> 1 我理解的: 2 -> root -> 1 (2为新增元素) 如果是这样的话 可代码表示的就不一样了 代码: root -> 2 -> 1 很久没看书了,忘记了这一块的根节点用法了,是不是所谓的根节点root就是一个空,一个指针? ''' node = Node(value) if not self.root.next: self.root.next = node else: tmp = self.root.next self.root.next = node node.next = tmp self.size += 1 def remove_first(self): if not self.root.next: print('no node in link') pass else: ''' 最初: root -> 蔡文姬 -> 扁鹊 —> 阿珂 删除头节点: root -> 扁鹊 —> 阿珂 ''' self.root.next = self.root.next.next self.size -= 1 def remove(self): ''' 从最后删除 ''' if not self.root.next: print('remove no node in link') pass else: current = self.root while current.next is not self.next: current = current.next self.next = current self.next.next = None self.size -= 1 def remove_value(self,value): ''' 删除指定元素 ''' if not self.root.next: print('remove_value no node in link') pass else: if self.next.value == value: self.remove() elif self.root.next.value == value: self.remove_first() else: current = self.root.next while current.next.value != value: current = current.next current.next = current.next.next self.size -= 1 def remove_size(self,key): ''' 删除指定位置 :param key: an int ''' if key > self.size: print('size not enough') elif key == 1: self.remove_first() elif key == self.size: self.remove() else: ''' 感觉这一块不太对,但又不知道怎么搞 ''' current = self.root current_num = 1 while current_num != key: current = current.next current_num += 1 current.next = current.next.next self.size -= 1 def __iter__(self): if not self.root.next: print('no node in link') pass else: current = self.root.next while current is not self.next: yield current.value current = current.next yield current.value if __name__ == '__main__': link = Linklist() link.append('阿珂') link.append_first('扁鹊') link.append_first('蔡文姬') # link.remove_first() # link.remove_first() # link.remove() # link.remove_value('蔡文姬') link.remove_size(2) for v in link: print(v)
屏幕截图 2023-03-11 162711.png
老师为啥,我这个打印结果跟不同
老师我加上encoding=utf-8后还是报错怎么回事?
老师 对于这个装饰器 是不是可以这样理解 装饰器起到了一个监听的作用 如果有客户端请求服务器 客户端发来的域名跟装饰器里的这个('/')匹配了 那么就执行底下这个视图方法 然后将方法里的内容返回给客户端界面 这样理解对吗
咱们以后做后端工作 都是基于这个来做是吗 将代码写在视图方法里 然后用装饰器去匹配 返回给客户端
第二个问题
底下这个红色的代码是什么意思
老师,为什么不是数字字母和下划线,还是TRUE
老师,按照步骤操作后一直出现下面的问题,有什么办法能解决(网上貌似说要找zookeeper.out文件,但我这儿找不到)...
老师找不到路径我把demo1删除了他还报demo1的错误,work改名了也找不到,指定地址也改了总找不到这个类一直报这个无法加载主类
老师,这个JdbcUtils报错,是缺少什么了吗
我找不到那两张图片,到底在哪里呀,本章学习资料我也看了,就是没找到
输入一个学生的成绩,将其转化成简单描述:不及格(小于 60)、及格(60-79)、良好(80-89)、优秀(90-100)
请问:不及格(小于 60) 这种格式如何设置呢?
老师,请问为什么这行代码会出现全是None的结果
b = set() for x in range(1,100): if x%9 == 0: print(b.add(x))
问题一:老师,这里的分支是电脑本地的分支么?一般都是合并之后再提交到远程库吗?
问题二:我想知道假如gitee仓库上有我建立的分支sinagure,我提交代码到sinagure,然后怎样将仓库上的master和sinagure合并?我试了一下,合并冲提交之后提示突
老师,这里 题目是(10)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,若月 份相同则按入职的年份排序。
我输入的语句是 select ename,TO_char(hiredate,'yyyy') year,TO_char(hiredate,'mm') month from emp order by month,year asc ,这是我从百度上学到的to_char函数但是这里显示不存在。我想问问什么原因,并且应该怎么写。
如果在initialValue()方法内部加上Thread.sleep(500)的话,运行结果显示三个线程还是在共享着同一个连接,那不还是线程不安全吗?
运行效果图如下所示:
代码如下所示:
package com.bjsxt; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * <b style = "font-size:15px;">用于获得与数据库的连接以及关闭连接</b> * @author 郑锦宗 * @version v1.0 */ public class DBUtil { private static final String DRIVER="com.mysql.jdbc.Driver"; private static final String USER="root"; private static final String PWD="root"; private static final String URL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"; private static Connection conn=null; //定义一个数据库连接 private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>() { protected Connection initialValue() { try { Class.forName(DRIVER); if(conn==null){ conn=DriverManager.getConnection(URL, USER, PWD); } try { Thread.sleep(500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } }; //获取连接 public static Connection getConnection(){ return tl.get(); } //关闭连接的方法 public static void colseConnection(){ if (conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { System.out.println(getConnection()); } }
源码压缩包如下所示:
源码压缩包.zip
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637