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

网站开发费分摊多少年网站设计公司网站制作

网站开发费分摊多少年,网站设计公司网站制作,做企业网站市场分析,做网站的环境配置您的代码整体结构良好,但存在一些关键错误和优化点。以下是对代码的详细评价及改进建议:---### 主要问题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/328485.html

相关文章:

  • 做网站需要流程seo优化关键词分类
  • 一般招聘网站有哪些自己搭建一个网站
  • 公司做网站b2b吗策划方案模板
  • 山东建设科技产品推广网站推广赚钱平台有哪些
  • 沈阳哪里做网站杭州seo全网营销
  • 网站建设it网站建设介绍ppt
  • 外贸网站建设网络公司b站推广网站入口2023的推广形式
  • 贵金属如何用网站开发客户公司网站域名续费一年多少钱
  • 地下城做解封任务的网站赣州网站建设
  • 毕业设计做旅游网站搜索引擎分析论文
  • 做软件工资高还是网站百度热门排行榜
  • 如何用电脑做网站服务器腾讯朋友圈广告怎么投放
  • 怎么做国外网站前端seo怎么优化
  • 地方文明网站建设中国十大营销策划机构
  • 如何做网站内链seo目标关键词优化
  • 给网站底部做友情链接手机百度最新正版下载
  • 网站用的服务器是什么优化英语
  • 四川建设网站官网推广产品最好的方式
  • 福州网络营销推广公司宁波seo快速优化平台
  • 现在什么网站比较火做推广上海网站制作公司
  • linux网站开发工具怎么建网站赚钱
  • 多用户网站建设方案短视频怎么赚钱
  • 绵阳网站建设2023新闻摘抄大全
  • 小程序源码网站论坛原创软文
  • 做外贸网站的价格网站seo的主要优化内容
  • 网站建设公司怎么做业务排名怎么优化快
  • 怎么制作图片加文字带声音的视频武汉seo优化
  • 做企业网站域名需要解析吗上海app网络推广公司
  • 网站蜘蛛爬行统计系统百度关键词排名靠前
  • php动态网站开发实训教程百度关键词首页排名怎么上