当前位置: 首页 > wzjs >正文

网站开发公司规章制度日本樱花免m38vcom费vps

网站开发公司规章制度,日本樱花免m38vcom费vps,锦江区建设和交通局网站,注册装修装饰公司需要多少钱您的代码整体结构良好,但存在一些关键错误和优化点。以下是对代码的详细评价及改进建议:---### 主要问题1. **add方法中的链表断裂问题**- **问题描述**:当向链表中间插入节点时,未正确设置新节点的next,导致后续节点丢…
您的代码整体结构良好,但存在一些关键错误和优化点。以下是对代码的详细评价及改进建议:---### 主要问题1. **add方法中的链表断裂问题**- **问题描述**:当向链表中间插入节点时,未正确设置新节点的`next`,导致后续节点丢失。- **错误代码**:```pythonprevious.next = temp# current = temp  # 这行是注释掉的,且未设置temp.next = current```- **修复建议**:插入节点后,应将新节点的`next`指向原`current`节点。```pythonprevious.next = temptemp.next = current  # 添加此行```2. **remove方法无法删除头节点**- **问题描述**:当删除头节点时,`previous`为`None`,直接访问`previous.next`会导致`AttributeError`。- **错误代码**:```pythonif current.data == data:previous.next = current.next  # 当previous为None时出错```- **修复建议**:需单独处理头节点的情况。```pythonif current.data == data:if previous is None:self.head = current.next  # 更新头节点else:previous.next = current.nextreturn```---### 其他优化建议1. **变量命名与注释**- 将`temp`改为`new_node`以提高可读性。- 在关键步骤添加注释,例如插入节点的逻辑。2. **异常类型选择**- 删除元素时若未找到数据,建议抛出`ValueError`而非`TypeError`,因为错误原因是值不存在而非类型问题。3. **简化Node类**- 如果不需要数据验证,可以省略`@property`和`@setter`,直接通过属性访问。---### 改进后的关键代码片段#### 修正后的`add`方法
```python
def add(self, data):new_node = Node(data)current = self.headprevious = Nonewhile current is not None and current.data <= new_node.data:previous = currentcurrent = current.nextif previous is None:new_node.next = self.headself.head = new_nodeelse:previous.next = new_nodenew_node.next = current  # 修复链表断裂
```#### 修正后的`remove`方法
```python
def remove(self, data):current = self.headprevious = Nonewhile current is not None:if current.data == data:if previous is None:self.head = current.next  # 处理头节点删除else:previous.next = current.nextreturnprevious = currentcurrent = current.nextraise ValueError(f"{data} not found in the ordered list")
```---### 测试建议
1. **插入中间节点**:验证链表是否完整。```pythonorderedlist = OrderedList()orderedlist.add(1)orderedlist.add(3)orderedlist.add(2)  # 应插入在1和3之间orderedlist.display()  # 预期输出:1 --> 2 --> 3 --> None```2. **删除头节点**:```pythonorderedlist.remove(1)orderedlist.display()  # 预期输出:2 --> 3 --> None```---通过修复这些问题,您的有序链表将能够正确处理所有插入和删除场景。总体代码逻辑清晰,继续加油!

class Node:"""链表的一个节点"""def __init__(self,data):self._data = dataself._next = None@propertydef data(self):return self._data@data.setterdef data(self,new_data):self._data = new_data@propertydef next(self):return self._next@next.setterdef next(self,next_node):self._next = next_nodeclass OrderedList:"""有序列表"""def __init__(self):self.head = Nonedef is_empty(self):return self.head is Nonedef add(self,data):temp = Node(data)current = self.headprevious = Nonewhile current is not None and current.data <= temp.data:previous = currentcurrent = current.nextif previous is None:temp.next = self.headself.head = tempreturnprevious.next = temp# current = tempdef search(self,data):current = self.headwhile current is not None :if current.data == data:return Truecurrent = current.nextreturn Falsedef remove(self,data):current = self.headprevious = Nonewhile current is not None:if current.data == data:previous.next = current.nextreturnprevious = currentcurrent = current.nextraise TypeError(f'{data} is not in the orderedlist')def size(self):count = 0current = self.head            while current is not None:count += 1current = current.nextreturn countdef display(self):current = self.headwhile current is not None:print(current.data,end=' --> ')current = current.nextprint('None') # 将节点接地orderedlist = OrderedList()
orderedlist.add(1)
orderedlist.add(2)
orderedlist.add(0)
orderedlist.add(-1)
orderedlist.display()
print(orderedlist.size())
print(orderedlist.search(2))
orderedlist.remove(1)
orderedlist.display()
print(orderedlist.size())评价一下我的代码

 修改好之后的代码:

class Node:"""链表的一个节点"""def __init__(self,data):self._data = dataself._next = None@propertydef data(self):return self._data@data.setterdef data(self,new_data):self._data = new_data@propertydef next(self):return self._next@next.setterdef next(self,next_node):self._next = next_nodeclass OrderedList:"""有序列表"""def __init__(self):self.head = Nonedef is_empty(self):return self.head is Nonedef add(self,data):temp = Node(data)current = self.headprevious = Nonewhile current is not None and current.data <= temp.data:previous = currentcurrent = current.nextif previous is None:temp.next = self.headself.head = tempreturnprevious.next = temptemp.next = current# current = tempdef search(self,data):current = self.headwhile current is not None :if current.data == data:return Truecurrent = current.nextreturn Falsedef remove(self,data):current = self.headprevious = None# 删除头节点if self.head is not None and self.head.data == data:self.head = self.head.nextreturnwhile current is not None:if current.data == data:previous.next = current.nextreturnprevious = currentcurrent = current.nextraise ValueError(f'{data} is not in the orderedlist')def size(self):count = 0current = self.head            while current is not None:count += 1current = current.nextreturn countdef display(self):current = self.headwhile current is not None:print(current.data,end=' --> ')current = current.nextprint('None') # 将节点接地orderedlist = OrderedList()
orderedlist.add(1)
orderedlist.add(2)
orderedlist.add(0)
orderedlist.add(-1)
orderedlist.display()
print(orderedlist.size())
print(orderedlist.search(2))
orderedlist.remove(-1) # 测试删除头节点
orderedlist.display()
print(orderedlist.size())
orderedlist.remove(2) # 测试删除另外一个边界点--尾节点
orderedlist.display()
print(orderedlist.size())输出:
-1 --> 0 --> 1 --> 2 --> None
4
True
0 --> 1 --> 2 --> None
3
0 --> 1 --> None
2

http://www.dtcms.com/wzjs/195510.html

相关文章:

  • 网站上怎样做下载文档链接怎么创建网站教程
  • 网站 备案 多久拓客渠道有哪些
  • 做论坛网站江苏提升关键词排名收费
  • 信阳企业网站建设广州seo公司
  • 网上学编程的有哪些比较好的网站市场营销比较好写的论文题目
  • 企业文化网站建设最新seo视频教程
  • 库尔勒 网站建设深圳关键词首页排名
  • 副食店年报在哪个网站做网络推广费用
  • 好用的网站管理系统营销技巧培训
  • 网站建设中国十强网站买卖
  • b2b2c网店系统安新seo优化排名网站
  • wordpress实时获取qq资料seo岗位培训
  • 什么是网站建设收录情况
  • 网页设计怎么设计网站优化方案怎么写
  • 柯桥建设集团网站站长之家app
  • 不用vip也能看的黄台的app安徽seo人员
  • 如何做网站淘宝客网站建设优化哪家公司好
  • 网站开发字体百度做广告多少钱
  • 传奇手游网站大全9377网页制作软件推荐
  • 电子商务网站建设考卷成都短视频代运营
  • 武汉做网站seo黄页网络的推广软件
  • 北京seo排名外包seo长尾关键词
  • 网站商城建设要多少钱seo实战视频
  • 安徽省建设厅安全协会网站软文推广是什么意思
  • 长治网站建设长沙营销网站建设
  • wordpress 图片跳转开鲁网站seo转接
  • 冒用公司名做网站外贸网站推广
  • 中国建设工程信息网官网清欠长沙优化网站厂家
  • 肥乡专业做网站推广app佣金平台正规
  • 郑州做网站建设公司定西seo排名